我有一個功能,通過他們的電子郵件搜索用戶。如果找到用戶,該函數返回用戶標識。否則它返回false。評價用戶ID爲真
如何評估這個看起來像12202436120g1200069971
的用戶ID爲true?
我有一個功能,通過他們的電子郵件搜索用戶。如果找到用戶,該函數返回用戶標識。否則它返回false。評價用戶ID爲真
如何評估這個看起來像12202436120g1200069971
的用戶ID爲true?
<cfif userid NEQ false>
// do something
<cfelse>
// do something else
</cfif>
我還會在IF語句中添加一條評論,說明它不是一個平坦的布爾評估(即:從該語句看來,它看起來像userid是一個布爾值,而不是可能碰巧持有「false」的字符串),解釋了什麼看起來像'
這是一個很好的方法,並且可以正常工作,但我不認爲它很有表現力。它暗示着userid是一個布爾值,由於ColdFusion的強大功能,許多事情都被隱式轉換爲布爾值。但是,如果您在腦海中解析代碼,則會讀取「如果用戶標識的值爲false」,您必須在其中進行隱式轉換。它就是爲什麼我採用我在答案中所做的方法。它寫道:「如果用戶名有一定的長度,那麼這樣做是否合適?」。在我看來它更具表現力,但它只是一種意見。 – bittersweetryan 2012-02-07 13:04:39
如果我理解正確,我會做這樣的事情:
if(len(userid)){
//true
}
else{
//false
}
ColdFusion的0是假,任何其他數(正或負)是真實的。
我第二次苦苦思索的答案還有一點小小的澄清。爲一個函數返回不同的變量類型不是一個好主意(例如:string或boolean/false),或者至少有一個這樣直接。發送一個字符串或者空格將是最好的,在這種情況下,你可以使用len()。 – 2012-02-06 17:05:47
這沒有任何意義。你能否改正實際的問題? – gahooa 2012-02-06 13:18:58