10
votes

Fonction à l'intérieur de la fonction PHP: Erreur: impossible de redéclaré

J'ai ce script php:

$values = hoeveelzijner(2005, 1);
$test = hoeveelzijner(2000, 4);


3 Réponses :


16
votes

Vous ne pouvez pas utiliser une fois; Vous ne pouvez que déclarer une fois. Chaque fois que la fonction hoeveelzijner est utilisée, la fonction hoeveelhoeveel est déclarée. Si vous l'appelez plus d'une fois, vous le redéclairez, ce qui est interdit.

Vous avez deux options: le premier consiste à prendre la définition de la fonction en dehors de la fonction contenant. La fonction sera déclarée lorsque le fichier est analysé d'abord, puis utilisé à plusieurs reprises. Si vous souhaitez limiter la définition de la fonction à une portée particulière (une bonne idée en principe), vous pouvez utiliser la syntaxe de fonction anonyme introduite dans PHP 5.3: xxx

vous pouvez alors Utilisez la fonction comme $ hoeveelhoeveel (...) .


2 commentaires

Merci pour l'excellent post. Je me luttais avec cela aussi, et la seule solution que je pouvais trouver était Ceci , qui a reçu une note négative sur php.net. Et maintenant je vois pourquoi :)


Je gagne aussi $ hoeveelhoeveel en tant que variable statique :)



0
votes

Bien que php, vous déclarons une fonction n'importe où, je pense que ce que vous faites n'est pas considéré comme une meilleure pratique.

Pour la plupart des gens, cela a juste l'air faux.

Vous devriez simplement déclarer la fonction en dehors de la fonction mère.

Alternativement, vous pouvez ajouter un fonction_exists () autour de la fonction interne, bien que de nouveau, je déclinerais simplement la fonction interne en dehors de la fonction mère.

Sont peut-être même une classe pour cela.


0 commentaires

0
votes

Vous ne pouvez plus le déclarer, surtout si la fonction l'appelle plus d'une fois. Voici un simple changement qui devrait fonctionner. XXX

Ensuite, vous pouvez également appeler la fonction de la même manière dans d'autres fonctions également, si nécessaire, être.


0 commentaires