J'intègre du code tiers dans l'application web que j'écris dans Zend Framework.Est-ce que Zend Framework désactive la déclaration des variables comme globales?
Le code que je veux intégrer déclare les variables comme globales. Cela fonctionne tout seul, mais pas quand je l'inclue dans Zend Framework. Au départ, je soupçonnais qu'il y a quelque chose dans Zend Framework qui désactive la déclaration des variables globales. J'ai le code de test suivant dans un contrôleur:
public function testglobalAction()
{
$a = 1;
function b()
{
global $a;
echo $a*2;
}
b();
}
Quand je l'ai couru imprime 0, par opposition à 2. En plus de cette course le même code lui-même dans les mêmes impressions serveur web sur 2. Je comprends que je pourrais remplacer toutes les instances globales pour utiliser le registre Zend. Cependant, un grep m'a montré qu'il y a environ 700 lignes que je dois changer, donc ce n'est pas faisable pour le moment.
Est-ce que quelqu'un sait comment je peux résoudre ce problème? No. Zend Framework ne désactive pas les globals, car cela n'est pas possible.
Globals ne sont pas une bonne idée en PHP. Zend te fait une faveur. – RaYell
Je savais que ce serait le premier commentaire/réponse que j'obtiendrais avec cette question! :) Mais j'intègre vraiment ce code dans mon application. – Marcel
Indiquez le code lorsque vous l'exécutez à partir du contrôleur. Je ne vois rien de lié à ZF dans votre échantillon. Oversimplification = nous ne pouvons pas vous aider. – hobodave