Als de eerste schrijfwijze wel werkt houd je die toch gewoon aan? De constructie van de tweede variant is gewoon raar, een echo van een geconcateneerde include?
Waarom elke regel een echo gebruiken? Je kan een echo ook over meerdere regels gebruiken.
Verder lijkt het mij zinvoller om een functie aan te maken in je datumdropdown.php die je dropdown-menu genereert. En dat je die functie aanroept in je echo. Dat lijkt me een stuk netter.
Op zich zou je gewoon include moeten kunnen gebruiken, geconcateneerd in een string.
Die foutmelding vertelt meer dat hij in de huidige working-directory geen datumdropdown.php kan vinden.
Maar persoonlijk vind ik een eigen geschreven functie veel netter.
Een framework, wat Frank zegt, is handig als je wat meer ervaring in PHP hebt, en goed weet hoe je eigen functies moet bouwen en kan organiseren tot classes.
Als je ook zorgt dat je maar 1 of enkele scripts hebt (denk bijvoorbeeld aan index.php) die in dezelfde directory staan (EDIT: die als kapstok dienen om de rest van je includes aan op te hangen), dan kun je altijd alle andere onderdelen op dezelfde manier includen. Idealiter heb je "one point of entry" (index.php).
@Ariën
Als je een vast onderdeel in je site hebt zitten wat je maar 1x gebruikt in je hele layout, zou ik hier persoonlijk geen functie van maken. Een functie heeft pas een zekere meerwaarde als je deze meerdere keren (tegelijkertijd) gebruikt. Ik denk dat hier een include meer op zijn plaats is (pun intended :)).
@Frank
Een framework is wellicht een beetje overkill, je zou ook kunnen volstaan met een simpele autoloader.
De intentie was een beetje om er op te hameren dat je een duidelijk beeld hebt van je mappenstructuur en nu we het er toch over hebben zijn er ook verschillende typen .php bestanden. Ik zelf maak graag de volgende onderverdeling:
- landing bestanden -> de pagina waar een gebruiker op 'landt' zoals index.php about.php en contact.php
- libraries -> hierin schrijf je classes of functies
- configuratie -> hierin staat je database servername, username en wachtwoord en meer van dat soort zaken.
- templates -> hierin staat de HTML met wat php variabelen die ge-echo-ed worden.
Als je hier nu al eens over nagedacht hebt dan ben je volgens mij al een aardig eindje in de goede richting.
@Thomas: Natuurlijk is autoloading een geweldige tool maar ook deze is onbekend voor een PHP beginneling...