PierreS
10-05-2005, 18:06
Hallo,
kann es sein, daß man __get und __set nicht statisch verwenden kann?
Ich habe folgenden Code:
class Kernel{
private static $classes = array();
public static function __get($class)
{
if (!isset(self::$classes[$class]))
{
$new = new $class();
self::$classes[$class] = &$new;
return $new;
}
else
{
return self::$classes[$class];
}
}
public static function __set($class, &$value)
{
if (!isset(self::$classes[$class]))
{
self::$classes[$class] = $value;
return $value;
}
else
{
return self::$classes[$class];
}
}
}
// Initialisierung
Kernel::$Sql = new Sql(Settings::SQL_DATABASE, Settings::SQL_USER, Settings::SQL_PASSWORD); //Zeile 84
Kernel::$User = new User(Kernel::$Io, Kernel::$Sql);
Es kommt die Meldung:
Fatal error: Access to undeclared static property: Kernel::$Sql in /home/pierre/public_html/laber-land/develop/index.php on line 84
Verwende ich die Methoden nicht statisch und erzeuge ein Objekt von Kernel, funktioniert das tadellos.
Hat jemand eine Idee hierzu?
Viele Grüße
Pierre
kann es sein, daß man __get und __set nicht statisch verwenden kann?
Ich habe folgenden Code:
class Kernel{
private static $classes = array();
public static function __get($class)
{
if (!isset(self::$classes[$class]))
{
$new = new $class();
self::$classes[$class] = &$new;
return $new;
}
else
{
return self::$classes[$class];
}
}
public static function __set($class, &$value)
{
if (!isset(self::$classes[$class]))
{
self::$classes[$class] = $value;
return $value;
}
else
{
return self::$classes[$class];
}
}
}
// Initialisierung
Kernel::$Sql = new Sql(Settings::SQL_DATABASE, Settings::SQL_USER, Settings::SQL_PASSWORD); //Zeile 84
Kernel::$User = new User(Kernel::$Io, Kernel::$Sql);
Es kommt die Meldung:
Fatal error: Access to undeclared static property: Kernel::$Sql in /home/pierre/public_html/laber-land/develop/index.php on line 84
Verwende ich die Methoden nicht statisch und erzeuge ein Objekt von Kernel, funktioniert das tadellos.
Hat jemand eine Idee hierzu?
Viele Grüße
Pierre