2011-10-10 61 views
1

我一直對我的頭撞這一段時間了,並已嘗試過許多版本的代碼。我必須做一些非常基本錯...令人難以置信的簡單「如果」在PHP中失敗

$pop = FALSE; 
$pop = ($visits > 4); 

if ($pop){ 
    drupal_add_js(drupal_get_path('module', 'spester') .'/light.js'); 
} 

var_dump($visits, $pop)給我

int(3) bool(false) 

...,但表達我if計算內。

當然,如果我不是做if{FASLE}{...},然後我的代碼的行爲與預期...

+3

你確定'drupal_add_js'調用還沒有發生在其他地方嗎?你有沒有清除Drupal的頁面緩存? – ceejayoz

+0

這不是在這裏發生的:http://codepad.org/A8F6MZ7S必須是別的東西,你怎麼確定*'if(FALSE){}'給出不同的輸出? –

+1

在'if'條件中放入一個'echo',看它是否被打印出來。 – rohit89

回答

2

如果布爾是false,該if從未得到執行。你可以在那裏放一個簡單的跟蹤echo,你會看到它。

它看起來像其他一些執行的代碼會讓你認爲正文實際上不是被執行的。或者你編輯錯誤的文件。或忘記刷新它。或別的東西...

請不要責怪PHP,你會99.999%錯誤。

注意:我希望FASLE只是您的文章中的一個錯字。另外,請檢查您的警告/錯誤顯示設置。

+0

爲了公平起見,他從來沒有正式指責過PHP,但是「if {FASLE} {...}'確實是一個真的...... –

+0

謝謝所有的建議......當然應該把迴應,如果本身... 我發現,並需要深究的是,Drupal以某種方式反覆調用該函數,所以我得到了var_dump($訪問,$流行)爲單頁面加載是: 我nt(18)bool(true)int(18)bool(true)int(2)bool(false)int(2)bool(false)int(69)bool(true)int(69)bool(true)int 18)bool(true)int(18)bool(true)int(3)bool(false)int(4)bool(false) 哇!奇怪的事情發生在我的$訪問變量! (正在從$ _COOKIE中讀取... – tonetone

+0

這個答案需要被接受。 –

-2

檢查@visit變量的值,吐出$流行的價值。這可能是$訪問在它的價值錯誤。

另外一個更好的條件是

if ($pop == true) 
{ 
    //do this 
} 
+4

你可以使用'==='。 – MasterCassim

+1

爲什麼鬆散比較比隱式布爾更好?而且,OP的'var_dump()'中的值就在那裏。 –

+2

這是完全一樣的條件。 –

相關問題