2013-12-18 32 views
-1

我想知道是否有任何方法可以縮短代碼長度。我正在使用2 if聲明,我正在尋找只使用一個。事情是$user是會話,如果您檢查$user->userId是否存在於同一行中,則代碼將在沒有會話存在時發生錯誤。通過從不存在的對象請求userId引起。這很合乎邏輯,但現在有沒有解決方案?PHP可能的編寫方法if

if ($user != null) { 
    if ($user->userId == 1) { 
    .. 
    } 
} 

回答

2

如何使用the && operator

if ($user && $user->userId == 1) { 
    //... 
} 
+0

Waw,然後我做了一些錯誤,當我試圖做同樣的事情。無論如何,非常感謝。 – user2103237

+0

@ user2103237只是爲了澄清,'如果($ user ...'檢查等同於'if($ user == true ...',那麼很可能這對你很好,但要小心'0' ,'false','''',''0''等全部*不*等於'true',而是'1','true',''false'',''1''等*做*等於'true'。 – 0b10011

0

您要使用的&&操作。這意味着和

if ($user && $user->userId == 1) { 
    // do some things 
} 

您可能還想要查看||運算符,它意味着或。

只有當兩個謂詞返回true時,&&運算符纔會返回true。

只要其中一個謂詞返回true,||運算符將返回true。

1

,只要你想你可以添加儘可能多的句子,只要他們得到適當的建立,在這種情況下:

if (($user != null) && ($user->userId == 1)) { 

,或者你可以簡單地說:

if ($user && ($user->userId == 1)) { 

如果($用戶)只是檢查變量是否已設置,或者是否爲空。