在PHP語句,我有if語句:
FIX_RECIPE_ID && FIX_RECIPE_ID != $favouriteRecipeId
它做什麼它在錫說,雖然,有沒有更符合邏輯的寫這種說法的方法?
非常感謝!
在PHP語句,我有if語句:
FIX_RECIPE_ID && FIX_RECIPE_ID != $favouriteRecipeId
它做什麼它在錫說,雖然,有沒有更符合邏輯的寫這種說法的方法?
非常感謝!
如果FIX_RECIPE_ID
是一個常量,請使用此語法。
defined(FIX_RECIPE_ID) && (FIX_RECIPE_ID != $favouriteRecipeId)
如果不是,使它成爲一個變量,然後再使用
isset($FIX_RECIPE_ID) && ($FIX_RECIPE_ID != $favouriteRecipeId)
對不起提交作爲一個答案,但我沒有評論權限,但我猜。
Shiplu的答案並不完全正確。行:
defined(FIX_RECIPE_ID) && (FIX_RECIPE_ID != $favouriteRecipeId)
會出現工作,但會拋出一個通知,沿Use of undefined constant FIX_RECIPE_ID - assumed 'FIX_RECIPE_ID'
行,如果它沒有定義,並且會有非常意外的行爲(通常返回false),如果它是。
defined
函數將該常量的名稱作爲字符串。如果PHP沒有定義並且按照預期的那樣工作,PHP會假設你的意思是字符串'FIX_RECIPE_ID'
(儘管如前所述,拋出通知)。如果已定義,則將檢查以FIX_RECIPE_ID的值命名的常量是否存在。
它沒有定義的時候意思是,你的支票是有效的:
defined('FIX_RECIPE_ID') && (FIX_RECIPE_ID != $favouriteRecipeId)
哪個是正確的,將返回false。當爲定義,但是,(讓我們假裝這是10
),檢查將成爲:
defined(10) && (FIX_RECIPE_ID != $favouriteRecipeId)
並確定將返回false。 這整個條件將始終返回false。
在這種情況下使用defined正確的方法是:如果沒有定義FIX_RECIPE_ID
defined('FIX_RECIPE_ID') && (FIX_RECIPE_ID != $favouriteRecipeId)
這條語句將產生一個警告。這不是JavaScript :) –
'FIX_RECIPE_ID'常量?如果是這樣,你應該檢查'defined('FIX_RECIPE_ID')'。 –
@Jan,沒有人說過它是JS,它的PHP! –