Comment detruire une fonction PHP ou la remplacer par l'existante ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment detruire une fonction PHP ou la remplacer par l'existante ?

Re: Comment detruire une fonction PHP ou la remplacer par l'existante ?

par two3d » 25 févr. 2021, 12:04

Merci, donc pas possible.

Je suis tombé sur les fonctions anonymes hier sur la doc PHP, merci pour l'info ;)

Re: Comment detruire une fonction PHP ou la remplacer par l'existante ?

par @rthur » 25 févr. 2021, 11:54

Alors la réponse simple est que non ce n'est pas prévu par PHP.
Il a existé il y a quelques années une fonction override_function() mais elle a disparu.

Une possibilité si tu as la possibilité de changer la façon dont sont définis tes fonctions est d'utiliser des fonctions anonymes, ainsi tu peux les redéfinir comme tu veux (et même faire un unset() pour les supprimer)
$ihatefooexamples = function() {
  echo "boo-foo ! <hr>";
}
$ihatefooexamples();



$ihatefooexamples = function() {
   echo "really boo-foo <hr>";
}
$ihatefooexamples();
https://www.php.net/manual/fr/functions.anonymous.php

Comment detruire une fonction PHP ou la remplacer par l'existante ?

par two3d » 25 févr. 2021, 01:17

Salut,

En schématisant, dans une page:

1. En haut de cette page j'inclus un fichier qui contient une fonction qui se nomme bonjour() qui retourne "Bonjour!"

2. Au milieu de la page j'ai une fonction qui se nomme aussi bonjour() mais qui elle me retourne le mot "Salut!"

3. En bas de page, nous avons donc une fonction bonjour() qui retourne "Bonjour!" car la fonction du milieu de page à été vérifiée avec function_exists et n'est donc pas utilisée.


Je souhaiterais pouvoir "remplacer" la première fonction par la seconde et ainsi affiche "Salut!" et non "Bonjour!".

Une solution ?