2013-08-03 6 views
0

Le code en question:même code, les différents serveurs, sortie différents

<?php /*tests added by jason*/ 
    echo "<br />"; 
    echo "count = " . $this->countModules('showcase'); 
    echo "<br />"; 
    echo "hidebyview = " . $hideByView; 
    echo "<br />"; 
    if($hidebyview == true) { 
     echo "T"; 
    } 
    else { 
     echo "F"; 
    } 
    echo "<br />"; 
    if ($this->countModules('showcase') && $hideByView == false) { 
     echo "pass"; 
    } 
    else { 
     echo "fail"; 
    } 
    echo "<br />"; 
?> 

Site 1 sortie Apache/PHP 2.2.22 Version 5.3.10-1ubuntu3.7 (Ubuntu) (où tout fonctionne très bien):

count = 1 
hidebyview = 
F 
pass 

site 2 sortie Apache/2.2.13 (Win32) PHP/5.3.26 (où la chose est cassé):

count = 1 
hidebyview = 1 
F 
fail 

Je suppose que cela se résume comment la partie qui évalue "échouer" peut-elle évaluer différentes réponses?

+0

Où est défini '$ hideByView'? – JimL

+0

Il ne semble pas être défini n'importe où. C'était aussi une de mes questions. Je suis actuellement en train de parcourir toute la chaîne d'includes (c'est un site joomla) pour savoir où se trouve son set, quoi, etc. Mais comme le site d'essai et le site distant ont le même code, je pensais que ce n'était pas prévu ensemble. – jason

+0

étant défini dans un fichier inclus. false est le réglage correct. – jason

Répondre

0

$hideByView == false n'est pas (toujours) égal à !($hidebyview == true) en raison de la conversion et d'autres conversions automatiques possibles. Ainsi, vos informations de débogage ne vous montrent pas vraiment à quoi correspond votre expression $hideByView == false.

+0

seulement en PHP est le contraire de faux pas vrai lol. Merci, je pense que cela aidera. – jason

Questions connexes