PHPの関数を上書きできますか?

Barbara Streisand
リリース: 2024-11-25 02:33:09
オリジナル
298 人が閲覧しました

Can You Overwrite Functions in PHP?

PHP での関数の上書き

「この例のように、関数を再宣言して 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート