PHP におけるオーバーロードとは、マジック メソッドを通じて実現されるプロパティとメソッドの動的な作成を指します。属性のオーバーロードでは、__set、__get、__isset、__unset を使用して、それぞれ割り当て、読み取り、属性が設定されているかどうかの判断、属性が存在しない場合の属性の破棄を実装します。
<strong>class Car { private $ary = array(); public function __set($key, $val) { $this->ary[$key] = $val; } public function __get($key) { if (isset($this->ary[$key])) { return $this->ary[$key]; } return null; } public function __isset($key) { if (isset($this->ary[$key])) { return true; } return false; } public function __unset($key) { unset($this->ary[$key]); }}$car = new Car();$car->name = '汽车'; //name属性动态创建并赋值echo $car->name;</strong>
メソッドのオーバーロードは __call によって実装されます。存在しないメソッドが呼び出された場合、__call メソッドがパラメーターとして呼び出されます。存在しない静的メソッドが呼び出された場合は、__callStatic オーバーロードが使用されます。
<strong>class Car { public $speed = 0; public function __call($name, $args) { if ($name == 'speedUp') { $this->speed += 10; } }}$car = new Car();$car->speedUp(); //调用不存在的方法会使用重载echo $car->speed;</strong>
著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。