Ben op het moment met een boek bezig dat over OOP gaat en dat gebruik maakt van het extenden van de SPL dateTime. Nu ben ik dus eens eerst gaan kijken hoe die er nu uit ziet voordat ik door ga. Maar ik snap de hiërarchie niet.

(zie: http://docs.php.net/manual/en/class.datetime.php)


...
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTime add ( DateInterval $interval )
public static DateTime createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public DateInterval diff ( DateTime $datetime2 [, bool $absolute = false ] )
...


Ik snap dat er eerst een visibility moet worden gegeven(public/private/private). Dan volgt er optioneel static/abstract, maar dan verwacht ik alleen nog de naam van de method. Maar in dit geval staat nog iets? Nou weet ik dat wat daar staat een naam is van een van de klasse. Maar hoe moet ik dat nou zien? Hoe steekt deze klasse nou in elkaar?

(final) [public/private/private] (abstract/static] (?) naam_van_de_method($Properties...)
Intern zijn die methodes overgeërfd van die bepaalde klasse.
Beetje java-like, of andere programmeertaal die correcter (gevorderder) omgaat met OOP.
Dus het is niet zo dat je dat in je eigen php klasse's ook kan doen? Zij (PHP) kunnen dus zeg maar op method niveau extenden als het waren of klopt dat niet wat ik nu zeg.
Ik schrijf wat onder voorbehoud, aangezien php dus niet volledig OOP ondersteund. Java kan je overerven van meerdere klasses tegelijk, dat kan php niet. Dat bedoel ik meer.
Ilyes Ahidar op 24/11/2010 22:56:41

Ik snap dat er eerst een visibility moet worden gegeven(public/private/private). Dan volgt er optioneel static/abstract, maar dan verwacht ik alleen nog de naam van de method. Maar in dit geval staat nog iets? Nou weet ik dat wat daar staat een naam is van een van de klasse.


Volgens mij is het het type van de return value. DateTime::diff geeft een DateInterval object terug, DateTime::createFromFormat geeft een instantie van de DateTime class terug, en DateTime::__construct geeft niets terug (want de constructor kan niets teruggeven :) )
Ja, dat is wat ik ook bedoelde (behalve dan dat van op method niveau). In ieder geval bedankt. Kan ik weer verder :)

Reageren