2013-08-03 232 views
0

有问题的代码:相同的代码,不同的服务器,不同的输出

<?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 />"; 
?> 

网站1个输出的Apache/2.2.22(Ubuntu的)PHP版本5.3.10-1ubuntu3.7(其中一切正常):

count = 1 
hidebyview = 
F 
pass 

网站2输出的Apache/2.2.13(的Win32)PHP/5.3.26(这里的东西被打破):

count = 1 
hidebyview = 1 
F 
fail 

我猜它归结如何评估“失败”的部分评估为不同的答案?

+0

'$ hideByView'在哪里设置? – JimL

+0

它似乎没有设置任何地方。这也是我的一个问题。我目前正在浏览整个包含链(它是一个joomla网站),以查找其集合,内容等等。但是,由于测试网站和远程网站具有相同的代码,因此我认为它可能并不打算成为组。 – jason

+0

它被设置在一个包含文件中。假是正确的设置。 – jason

回答

0

$hideByView == false由于投射和其他可能的自动转换而不是(总是)等于!($hidebyview == true)。因此,您的调试信息并不真正向您显示您的表达$hideByView == false的评估结果。

+0

只有在PHP是相反的虚假不真实哈哈。谢谢,我认为这会有所帮助。 – jason

相关问题