Maison > développement back-end > tutoriel php > Puis-je écraser une fonction en PHP comme celle-ci ?

Puis-je écraser une fonction en PHP comme celle-ci ?

Barbara Streisand
Libérer: 2024-11-16 20:07:03
original
1048 Les gens l'ont consulté

Can I Overwrite a Function in PHP Like This?

Écrasement d'une fonction en PHP : procédure pas à pas

En PHP, il n'est pas possible d'écraser une fonction de la manière spécifiée par la question d'origine. Cependant, il existe d'autres moyens d'obtenir des résultats similaires.

Approche originale :

function ihatefooexamples() {
  return "boo-foo!";
};

// Redeclaration
if ($_GET['foolevel'] == 10) {
  function ihatefooexamples() {
    return "really boo-foo";
  };
};
Copier après la connexion

Cette approche n'est pas réalisable car PHP ne permet pas de redéfinir les fonctions avec le même nom et paramètres.

Approche alternative utilisant la POO :

Le polymorphisme via la programmation orientée objet (POO) est une meilleure solution.

Créer une interface Fooable et deux classes Foo et FooBar qui l'implémentent.

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";
    }
}
Copier après la connexion

Instanciez la classe appropriée basée sur le niveau imbécile et appelez la méthode ihatefooexamples.

$foo = new Foo();

if (10 == $_GET['foolevel']) {
    $foo = new FooBar();
}

echo $foo->ihatefooexamples();
Copier après la connexion

En utilisant cette approche POO, nous peut modifier dynamiquement le comportement de la fonction ihatefooexamples en fonction du paramètre d'entrée tout en conservant la cohérence du nom de la fonction.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal