は、私は、親クラスに
class parentClass {
public function myMethod() {
echo "parent - myMethod was called.";
}
}
と、次の子クラス
を持っていると言いますclass childClass extends parentClass {
public function callThroughColons() {
parent::myMethod();
}
public function callThroughArrow() {
$this->myMethod();
}
}
$myVar = new childClass();
$myVar->callThroughColons();
$myVar->callThroughArrow();
継承クラス内からmyMethod()を呼び出す2つの異なる方法の違いは何ですか? 私が考えることができる唯一の違いは、childClassがmyMethod()を自分のバージョンでオーバーライドする場合ですが、他に大きな違いがありますか?
私は二重コロン演算子(::)は静的メソッドだけを呼び出すために使用されると考えられましたが、$ myVar-> callThroughColons()を呼び出すときにはE_STRICTおよびE_ALLをオンにしても警告は表示されません。何故ですか?
ありがとうございます。
parent ::の代わりにparentClass :: myMethod()を使用しても警告は出ませんが、全体的な考え方があります。:: operatorを使って継承するクラスからメソッドを呼び出すと、それは特別なケースです。ありがとう。 – user2339681
@ user2339681 E_STRICTエラーが発生しました。エラー報告を高くすると、それが表示されます。 – bwoebi