I持っても第三のクラスであるという特性がある第二のクラスであるプロパティを持つクラス、、:その結果、PHP:関連したクラスからメソッドにアクセスする方法を
$classOne = new ClassOne;
$classOne->classTwo = new ClassTwo;
$classOne->classTwo->classThree = new ClassThree;
とし、I
$classOne->classTwo->classThree->someClassThreeMethod();
そして、何私がやろうとしているが、次のとおりです:これを行うことができます私はそうしようとするたびに
classThree {
someClassThreeMethod() {
$classOne->someMethod();
// some more code
}
}
を、PHPは、私に語っFatal error: Uncaught Error: Call to a member function someMethod() on null in...
global $classOne
(someClassThreeMethod
)の設定を試してみましたが、動作しなかったので、$GLOBALS
に$classOne
を試しました(ClassThreeの実装外のグローバルスコープでも動作しませんでした)。
最後に、関連付けられたクラス内からsomeMethod
にアクセスするにはどうすればよいですか?
UPDATEは、私がこれまでに与えられた答えを続行する方法について良いアイデアを得たので、私は少し異なる質問に改質だ:どのように私はsomeClassThreeMethod
内からアクセスできるように$classOne
を設定するのですか?
はあなたの呼び出し元のクラスでそのメソッドを含むクラスのオブジェクトを持っており、その*オブジェクトがそのメソッドを呼び出します*確認していることを確認してください。または継承を使用します。しかし、ここで試しているような方法を共有することはできません。 –
あなたはちょうど拡張することができましたか? http://php.net/manual/en/keyword.extends.php – nogad
@nogad私がやっていることから、継承はここには適用されません。とにかくありがとう! – LVilasBoas