2010-08-09 7 views
3

Je viens de me rendre compte qu'un peu de PHP ne s'exécute pas correctement sur un serveur, mais sur un autre.Pas de support de fermeture en PHP 5.3.2-1ubuntu4.2

Ils sont tous deux en cours d'exécution Ubuntu 10.04 avec PHP PHP 5.3.2 (PHP 5.3.2-1ubuntu4.2 avec Suhosin-Patch (cli) (construction: 13 mai 2010 20:03:45))

Je teste en utilisant:

$f = function() {}; 

var_dump($f); 
die(); 

Sur le serveur qui fonctionne, le résultat est:

objet

(fermeture) # 1 (0) {}

Sur celui qui n'a pas, le résultat est:

INCONNU: 0

Qu'est-ce que je manque?

[modifier]

Il semble y avoir un problème d'avoir 2 fermetures dans le même fichier:

<?php 
$f = function() {}; 
$f2 = function() {}; 

var_dump($f); 
var_dump($f2); 
die(); 

Sorties:

INCONNU: 0
objet (fermeture) # 1 (0) {

+1

Etes-vous sûr que l'autre ** fonctionne ** 5.3? Il pourrait être installé, mais avoir une version plus ancienne en cours d'exécution? Essayez d'exécuter 'phpinfo();' pour vous assurer que les paramètres pertinents sont identiques entre eux (bien que je ne sois pas sûr que les paramètres aient quelque chose à voir avec ce problème, mais cela vérifierait la version installée). – ircmaxell

+1

Avez-vous plus d'informations sur les * différences * entre les deux configurations? – salathe

+0

Pouvez-vous définir 'error_reporting' sur' E_ALL | E_STRICT'? Peut-être qu'une erreur est silencieusement supprimée ...? – ircmaxell

Répondre

2

Après un peu plus de googling combiné avec la pointe d'ircmaxell à phpinfo, j'ai eu un indice à eaccelerator.

Le serveur qui a correctement exécuté le code exécutait eaccelerator 0.9.6.1, celui qui ne fonctionnait pas utilisait 0.9.6.

Compilé la nouvelle version à partir de la source et il a résolu mon problème.

Merci!

+1

Si vous voyez 'UNKNOWN: 0' cela signifie généralement une corruption de la mémoire. – Artefacto

Questions connexes