「この例のように、関数を再宣言して PHP で関数を上書きできますか?」
function ihatefooexamples(){ return "boo-foo!"; } if ($_GET['foolevel'] == 10){ function ihatefooexamples(){ return "really boo-foo"; } }
このアプローチは論理的に見えるかもしれませんが、実際には PHP で関数が上書きされるわけではありません。別の実装で関数を再定義する直接的な方法はありません。
PHP のオブジェクト指向プログラミング機能は、ポリモーフィズムを通じて代替ソリューションを提供します。共通のメソッド シグネチャを持つインターフェイスを定義し、このインターフェイスを実装する複数のクラスを実装することにより、使用されるクラスのインスタンスに基づいてメソッドの動作を動的に変更できます。
次の例を考えてみましょう:
interface Fooable { public function ihatefooexamples(); } class Foo implements Fooable { public function ihatefooexamples() { return "boo-foo!"; } } class FooBar implements Fooable { public function ihatefooexamples() { return "really boo-foo"; } } $foo = new Foo(); if (10 == $_GET['foolevel']) { $foo = new FooBar(); } echo $foo->ihatefooexamples();
このアプローチにより、実行時のオブジェクト インスタンスに基づいて関数の動作をより動的かつ柔軟に変更することができます。
以上がPHPの関数を上書きできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。