あり、この種の問題について、多くのスレッドがすでにありますが、何らかの理由で、私はそれを動作させることはできません。 TestClassをで子関数から親のコンストラクタ内の変数セットをACCES
::テスト()、$ DBはNULLです。
$のデシベル値は、アプリケーションの構築物に設定されていると私は拡張クラス関数からその値を回復しようとしています。 (だから私はいつでもどこでも$ 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;
}
}
?>
、静的プロパティへの変更 '$のdb'とコンストラクタの変更で、この'ます$ this->デシベル= "someValueの"; ''自己:: $デシベル= "someValueの" へ; ' – AliN11