PHP で演算子をオーバーロードできますか?
PHP は演算子のオーバーロードをサポートしていません。つまり、既存の演算子の動作を再定義することはできません。オペレーター。ただし、演算子の動作を変更する別の方法もあります。
たとえば、オーバーロードされた [] 演算子を含む Array クラスを作成する場合は、PHP5 で導入された SPL ArrayObject クラスを使用できます。 ArrayObject を拡張することで、拡張機能を備えた独自のカスタム配列型を定義できます。
簡単な例を次に示します。
<code class="php">class a extends ArrayObject { public function offsetSet($i, $v) { echo 'appending ' . $v; parent::offsetSet($i, $v); } } $a = new a; $a[] = 1;</code>
このコードの出力は次のとおりです。
appending 1
By offsetSet() メソッドをオーバーライドして、カスタム ArrayObject の [] 演算子のデフォルトの動作を拡張しました。
以上が「オーバーロード」の概念と質問の表現を工夫した、考えられるタイトルをいくつか示します。 * PHP で演算子を「オーバーロード」できますか? (予期せぬ答え) * オペレートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。