PHP のオーバーロードが Java のオーバーロードとは異なることはわかっています。 Java ではクラス内で同じ名前の複数の関数が許可され、各関数には異なるパラメーターが与えられますが、PHP では同じ名前の関数が 1 つだけ許可されます。たとえば、Java は複数のコンストラクターを持つことができますが、PHP は 1 つのコンストラクターのみを持つことができます。
PHP におけるオーバーロードとは、マジック メソッドを使用してプロパティとクラスを動的に作成することを指します。
1. 属性のオーバーロード: __get および __set
2. メソッドのオーバーロード: __call および __callStatic
(オンライン学習ビデオ共有: php ビデオ チュートリアル)
例: Laravel のリクエスト クラスは属性のオーバーロードを実装し、コードをより簡潔にします
$name = $request->name;
この属性はクラスには存在しませんが、特定の属性にアクセスするために Magic メソッドを通じて渡されます。実装は次のとおりです:
public function __get($key) { return Arr::get($this->all(), $key, function () use ($key) { return $this->route($key); }); }
この実装方法は、帰納的実装の原理など、広く使用されています:
class Foo { private $params = []; function __construct(array $params = []) { $this->params = $params; } public function __set($name, $value) { $this->params[$name] = $value; } public function __get($name) { return $this->params[$name]; } public function __isset($name) { return isset($this->params[$name]); } public function __unset($name) { unset($this->params[$name]); } }
おすすめの関連記事チュートリアル: php チュートリアル
以上がPHPのリロードを理解する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。