protected 只有本類和子類能夠調用該修飾符修飾的方法,致使的問題就是同一個父類的子類中能夠互相調用對方繼承的父類的protected方法。
<?php namespace app\test; class Base { protected function protectedMethod() { echo "base"; } } <?php namespace app\test; class A extends Base { protected function protectedMethod() { echo "a"; } } <?php namespace app\test; class B extends Base { public function test() { $a = new A(); $a->protectedMethod(); } }
$b = new \app\test\B(); $b->test();// 結果是 "a".