В этой проблеме уже много потоков, но по какой-то причине я не могу заставить ее работать.Устанавливает переменную переменной в родительском конструкторе из дочерней функции
В TestClass :: test(), $ db NULL.
Значение $ db устанавливается в конструкторе App, и я пытаюсь восстановить это значение из расширенной функции класса. (поэтому мне не нужно каждый раз устанавливать $ db).
Некоторая помощь была бы принята с благодарностью, спасибо.
файла: index.php
<?php
include('classes/App.class.php');
$oApp = new App();
echo TestClass::test();
?>
Файл: App.class.php
<?php
class App {
protected $db;
public function __construct() {
include_once("CAutoLoader.class.php");
$oCAutoLoader = new CAutoLoader();
$this->db = "someValue";
}
}
?>
Файл: TestClass.class.php
<?php
class TestClass extends App
{
function __construct() {
}
public static function test() {
return $db;
}
}
?>
Файл: 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;
}
}
?>
В классе App, изменение '$ db' для статического свойства и в изменении конструктора это' $ this-> дб = "SomeValue", '' к самостоятельной :: $ дб = "SomeValue"; ' – AliN11