これまでにこれが尋ねられたことは間違いありませんが、どこにも見つかりません。PHP:クラスを拡張する
私は2つのクラスを持っています。 AとB 3番目のファイルで
class classA
{
public $var1;
public $classbVar;
public function init()
{
// This is here because other script is run before it is called
// in the live code.
// it basically checks that the file exists. There is a reason for this.
if (file_exists('classB.php'))
{
require_once('classB.php');
}
else
{
echo "An error has occurred loading the second class.";
}
$this->var1 = "something";
$this->classbVar = new classB
echo $this->classbVar->doSomething();
}
}
別のファイルに
class classB extends classA
{
public function doSomething()
{
echo $this->var1;
}
}
、私はクラスAを呼び出し、init関数を実行していますよ。これは実際のコードではなく、私が書いたものと同じです。
なぜ、これは機能しません。もし私がVAR_DUMPの場合、私はnullになります....私は何を間違えたのか誤解しましたか?
MEがより明確とする:
以下のようにクラスAを呼び出し、3番目のファイルがあります。混乱のため
require_once('classA.php')
$classA = new classA;
$classA->init();
私の謝罪、私はここに簡単な何かが欠けています確信しているとして、私は、その場で少しこれをしました。確かに私がこれをやろうとしている方法は何とか働くでしょう。
正確なコードは、どのようなものが失敗しているように見えますか? – jeroen
基本的には.... 'require_once(classA.php); $ classA = new classA(); $ classA-> init(); ' – ukitconsultant
正確なコードの長さは500行を超えています。これは、拡張が適切に動作していないか、少なくとも予想したほどではありません。これは、開始からぶら下がりまでの6つのファイルにまたがっています。その時点までのすべてがうまくいっていますが、これは私がクラスを拡張して遊んだのは初めてのことですが、私は手続き的に育ったし、それをうまくいくことができますが、将来的にはクラスははるかに改善されやすくなります。 – ukitconsultant