wiitse 0 Geplaatst 8 oktober 2011 Ik ben maar weer eens begonnen met scripten en ik zit nu direct al met een vraag. Ik wil namelijk alles oop doen. Ik wil graag de __autoload methode gebruiken voor het laden van classes. Die functie zou ik graag in een class willen zetten, maar werkt het dan wel? Een voorbeeld van mijn code staat hieronder weergegeven. classes/Page.class.php: Codeblok: 123456789101112 <?phpclass Page{ function __construct() { echo blaat; } function __autoload($class) { include_once(classes/.$class..class.php); }}?> classes/Test.class.php: Codeblok: 12345678 <?phpclass Test{ public static function blaat() { return blaat; }}?> index.php Codeblok: 123456 <?phpinclude(classes/Page.class.php);$page = new Page;echo Test::blaat();?> Deel dit bericht Link naar bericht Delen op andere sites
Rik 5 Geplaatst 8 oktober 2011 Als het goed is moet dit werken. Al gebruik ik gewoon een apparte autoload functie (in de config bijvoorbeeld). Dus niet in een klasse Deel dit bericht Link naar bericht Delen op andere sites
kyron 0 Geplaatst 8 oktober 2011 Zoals Rik zegt kun je dat beter ergens anders doen. In je index.php is het beste, bij echt OOP is het namelijk zo dat de index alleen maar wat includes en een classloader bevat (omdat je met templates werkt) Afgeraden is om direct te echo-en vanuit je classfuncties, dit is niet OOP, return liever je waardes en echo dan de class->functie of de class:unctie Dit omdat je over bijvoorbeeld de function getUserName() op sommige plaatsen de naam wil laten zien, maar misschien wil je tussendoor ook berekeningen doen met bijvoorbeeld het aantal letters in de naam etc. Dan kun je echo $class->getUserName($henkie); doen en strlen($class->getUserName($henkie)); Als je wél in je functie echot dan moet je voor die 2de een nieuwe functie maken. Deel dit bericht Link naar bericht Delen op andere sites
Rik 5 Geplaatst 8 oktober 2011 De enige classes waarin je hoort te echoën zijn error-handlers. Deel dit bericht Link naar bericht Delen op andere sites