2015-11-26 98 views
2

我使用「Ampps和vagrant」Scotch Box作爲本地服務器,我的問題是=====運營商按照我的預期工作,但在託管時它們表現如此不同,例如我檢查站點狀態和用戶角色PHP比較運營商錯誤

if($status ===0 and $request->user()->role!==1){ 

}else{ 

} 

這個if語句完美的作品在當地的兩個流浪漢,AMMPS,但我的主機總是else部分作品,沒有任何PHP設置設置這種差異?

+1

不,'=='和'==='操作符是語言結構,不能在其行爲中改變。 – arkascha

+2

然後對'$ status'和'$ request-> user() - > role'及其數據類型的值進行一些調試......因爲操作員不會改變它們的行爲 –

+1

或許==足夠了 –

回答

0

我也有類似的問題,但與不完全相同的比較:

@if ($var !== 0) 

下面的代碼工作在兩臺機器上:

@if (($var != 0) || (is_null($var))) 

我沒有嘗試,但反轉的邏輯應該解決您的問題:

if ((($status == 0) && (!is_null($status)) and ($request->user()->role!=1)) 

注意:您不需要檢查NULL處於第二種狀態,因爲它被轉換爲0,因此不相等。