Es gibt bereits viele Threads über diese Art von Problem, aber aus irgendeinem Grund kann ich es nicht zum Laufen bringen.Acces-Variable im übergeordneten Konstruktor von der untergeordneten Funktion gesetzt
In TestClass :: test() ist $ db NULL.
Der $ db-Wert wird in App-Konstrukt festgelegt und ich versuche, diesen Wert von einer erweiterten Klassenfunktion wiederherzustellen. (also muss ich $ db nicht jedes Mal überall einstellen).
Einige Hilfe würde sehr geschätzt werden, danke.
Datei: index.php
<?php
include('classes/App.class.php');
$oApp = new App();
echo TestClass::test();
?>
Datei: App.class.php
<?php
class App {
protected $db;
public function __construct() {
include_once("CAutoLoader.class.php");
$oCAutoLoader = new CAutoLoader();
$this->db = "someValue";
}
}
?>
Datei: TestClass.class.php
<?php
class TestClass extends App
{
function __construct() {
}
public static function test() {
return $db;
}
}
?>
Datei: CAutoLoader.class.php
<?php
class CAutoLoader {
CONST CLASS_EXTENSION = '.class.php';
public function __construct() {
spl_autoload_register(array($this, 'loader'));
}
private function loader ($className) {
include $className . self::CLASS_EXTENSION;
}
}
?>
In der Klasse App, ändern '$ db' auf statische Eigenschaft und im Konstruktor ändern diese' $ this-> db = "somevalue"; 'auf' self :: $ db = "somevalue"; ' – AliN11