Page 1 sur 1
Suppression de fonction
Posté : 20 août 2011, 01:22
par mnementh64
Bonjour,
Voilà le pb.
J'inclus un fichier php qui contient des fonctions dont une qui s'appelle translate(...).
Je voudrais supprimer cette fonction parce qu'ensuite ...
J'inclus un autre fichier php avec d'autres fonctions dont une qui s'appelle aussi translate().
Si je ne supprime pas ma fonction entre les deux includes, j'obtiens une belle erreur de type cannot redeclare (et en plus, seule la deuxième me sert).
Savez-vous comment faire ?
Merci de votre aide,
Sylvain
Re: Suppression de fonction
Posté : 20 août 2011, 05:00
par AB
Lors de la déclaration de tes fonctions tu peux utiliser
function_exists
<?php
if (function_exists('ma_fonction')) {
function ma_fonction ()
{
}
}
?>
De la sorte seule la première fonction rencontrée sera déclarée et tu n'auras plus de pb avec le chargement de la deuxième (qui ne sera pas utilisée).
Re: Suppression de fonction
Posté : 20 août 2011, 10:00
par sirakawa
Le problème, c'est que je crois avoir compris que c'est de la première qu'il ne veut pas....
Impossible;
http://de2.php.net/manual/fr/functions.user-defined.php
Re: Suppression de fonction
Posté : 20 août 2011, 10:02
par xTG
Jettes un oeil aux namespace, cela devrait résoudre ton problème.

Re: Suppression de fonction
Posté : 20 août 2011, 12:52
par mnementh64
Bonjour,
Merci à tous pour vos réponses.
@sirakawa : effectivement, c'est la première fonction qui ne m'intéresse pas. Pas de chance !
@xTG : C'est vrai que ça aurait pu être une bonne solution mais il se trouve que je ne maîtrise pas la déf de ces 2 fcts.
En fait, j'essaye d'utiliser dans un environnement Prestashop les fonctions et utilitaires Wordpress. Et ça marche très bien avec une solution particulièrement simple, sauf dans l'admin de la boutique parce que :
- wordpress déclare une fonction translate
- Prestashop en déclare une aussi pour son admin. Et bien sûr c'est celle-là qui est importante pour l'admin !
Et pas moyen d'inverser les déclarations. Bon, je vais réfléchir et tester d'autres méthodes.
Dommage !
Sylvain
Re: Suppression de fonction
Posté : 20 août 2011, 14:30
par mnementh64
Résolu. J''utilise simplement une inclusion conditionnelle en détectant que je ne suis pas dans l'admin. Ok pour mon cas mais dommage qu'on ne puisse pas en PHP travailler plus l'introspection des fonctions.
Re: Suppression de fonction
Posté : 20 août 2011, 15:36
par devlop78
Oui Dommage moi aussi j'en ai eu besoin un moment, tu peux marquer le sujet comme clos

Re: Suppression de fonction
Posté : 20 août 2011, 19:37
par AB
Ah oui j'ai lu un peu vite, et je pensais que c'était deux fois la
même fonction (et qui donc portaient le même nom)...
Re: Suppression de fonction
Posté : 20 août 2011, 22:57
par sirakawa
Comme quoi, il faut tout lire avant de se précipiter pour dire "Enfantin, mon cher Watson, ya qu'à lire la doc page 31490, alinea 31252, sous-rubrique azerty_qwerty, ...":
il s'agit de deux fonctions différentes définies dans deux fichiers différents et portant le même nom. Comme les deux fichiers sont inclus systématiquement l'un après l'autre par des fonctions d'origine différente qu'il ne semble pas que l'auteur puisse modifier sans risque, il y a tentative de redéfinition. L'initiateur du sujet souhaiterait que ce fût la deuxième définition qui fût utilisée...
Re: Suppression de fonction
Posté : 21 août 2011, 04:46
par AB
L'initiateur du sujet souhaiterait que ce fût la deuxième définition qui fût utilisée...
Assoiffé !
