私を助けてください。たとえば、クラスBarから拡張するクラスFooがあります。
class Bar
{
public function __call($func, $args){
echo "Calling method {$func}";
}
public function __callstatic($func, $args){
echo "Calling static method {$func}";
}
public function run(){
echo "calling Bar::run method \n";
}
}
class Foo extends Bar
{
public $objBar;
public function __construct(){
$this -> objBar = new Bar();
}
public function callViaObject(){
$this -> objBar -> run();
$this -> objBar -> run1();
}
public function callViaParent(){
parent::run();
parent::run1();
}
}
$foo = new foo();
$foo -> callViaObject();
/* output
calling Bar::run method \n
Calling method run1; */
$foo -> callViaParent();
/* output
calling Bar::run method \n
Calling method run1; !! */
ここに問題があります。parent::
子クラスからメソッドを呼び出し、親クラスにオブジェクトがある場合、呼び出しメソッドparent::
は静的呼び出しではありません。
Bar
では、どうすればクラスをチェックインできますか、メソッドはどのように呼び出されますか?コールタイプが親であることを確認できますか::?
どうもありがとうございました!!