hi
nach längerer Zeit mit prozeduraler PHP-Programmierung will ich jetzt endlich "richtig" in OOP einsteigen. Aller Umstieg ist aber schwer
In einem kleinen Projekt habe ich zwei Klassen die in zwei Dateien aufgeteilt sind. Im Script (index.php) habe ich folgenden Autoloader eingebaut:
Wenn ich dann eine Klasse instanziere klappt das und ich kann diese verwenden:
Jetzt benötige ich aber in einer Methode in der Klasse "user" eine Methode der Klasse "ausgabe". Die ist dort wie folgt definiert:
Wenn ich aber jetzt in der Klasse "user" die Funktion direkt aufrufe
kommt diese Fehlermeldung:
Wenn ich die Klasse "ausgabe" direkt in die index.php kopiere, also nicht in eine extra Datei auslagere funktioniert der Aufruf.
Hab ich da ein Problem mit dem Autoloader?
Oder noch ein dicken Denkfehler drin?
Gruss
nach längerer Zeit mit prozeduraler PHP-Programmierung will ich jetzt endlich "richtig" in OOP einsteigen. Aller Umstieg ist aber schwer
In einem kleinen Projekt habe ich zwei Klassen die in zwei Dateien aufgeteilt sind. Im Script (index.php) habe ich folgenden Autoloader eingebaut:
PHP-Code:
function my_autoload($class_name)
{
$file = 'classes/'.strtolower(str_replace('\\','/',$class_name)).'.php';
if(file_exists($file))
{
require_once($file);
}
}
spl_autoload_register('my_autoload');
PHP-Code:
use user\user;
$user = new user();
use ausgabe\ausgabe;
$ausgabe = new ausgabe();
PHP-Code:
class ausgabe {
public static function text( $text ) {
echo $text;
}
}
PHP-Code:
ausgabe::text( "Max Muster" );
Fatal error: Class 'ausgabe' not found in /var/www/html/index.php on line 77
Hab ich da ein Problem mit dem Autoloader?
Oder noch ein dicken Denkfehler drin?
Gruss
Kommentar