Comment désactiver une définition de fonction tout comme nous avons désactivé une variable?
Je veux définir une fonction, et retirés après son utilisation, tout comme nous le faisons avec des variables.
$a = 'something';
unset($a);
echo $a; //outputs nothing
Juste comme ça si je déclare une fonction callMethod()est-il un moyen de désactiver ça?
source d'informationauteur Vin
Vous devez vous connecter pour publier un commentaire.
Depuis PHP 5.3, vous pouvez affecter un fonction anonyme à une variable, puis unset:
Avant 5.3, vous pouvez faire quelque chose de similaire avec
create_function()
runkit_function_remove — Supprimer une définition de fonction
http://php.net/manual/en/function.runkit-function-remove.php
Pour les sceptiques, il est parfaitement logique de vouloir supprimer une fonction. Si vous avez une fonction qui utilise une grande quantité de données en une seule fois au début de votre script de vouloir supprimer ce sens.
Un tel type de fonction peut être le mobile/tablette, fonction de détection d'un script ou d'un cadre. Il est seulement nécessaire qu'une fois et il est susceptible de prendre une quantité importante de mémoire pour une fonction qui s'exécute qu'une seule fois. Si vous avez un doute, vérifiez https://github.com/serbanghita/Mobile-Detect/blob/master/Mobile_Detect.json
Cela dit, il y a un moyen de contourner le problème sans avoir à supprimer la fonction. Pour ce que cela vaut, de façon globale tous les tableaux utilisés par la fonction puis à la fin de la fonction unset tous. La fonction reste mais les encombrants de données va. Notez que lorsque vous enlevez une variable, c'est à PHP garbage collector pour décider quand la mémoire sera libérée. Et de libérer de la mémoire prend des cycles de PROCESSEUR loin de votre application. Vraiment, je ne vois aucun script PHP qui nécessiterait la suppression d'une fonction.
De cette question:
Ils font partie de l'PHP Zend Debugger, si cela ne fonctionne pas, alors vous pouvez toujours essayer quelque chose comme: