J'allais le dire (pour les namespaces). En fait cela ne revient pas à redéclarer la fonction, puisqu'elle se trouve dans un autre namespace, mais c'est bien là l'une des utilités du namespace. Tu peux aussi déclarer une fonction en fonction d'une situation :
Code : Tout sélectionner
if ($toto == "tombé à l'eau") {
function x () {
}
} else {
function x () {
}
}
En sachant que le création en interne ne se fait pas de la même façon :
- Déjà c'est pas propre
- pas de cache OP-codes correct il me semble dans ce cas
- l'appel à la fonction x devra se faire APRES sa déclaration, ce qui n'est pas le cas en temps normal
Tu peux aussi (puisqu'on parle de php 5.3) créer des "fonctions anonymes" dans des variables :
Code : Tout sélectionner
$x = function ($a, $b) {
return $a * $b;
};
$x = function($a, $b) {
return $a + $b;
};
$x (25, 30);
Le plus propre étant évidemment les namespaces. Sinon, c'est surement un problème de méthodologie ...