2013-08-03 210 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

相關問題