2012-02-06 76 views
0

我有一個功能,通過他們的電子郵件搜索用戶。如果找到用戶,該函數返回用戶標識。否則它返回false。評價用戶ID爲真

如何評估這個看起來像12202436120g1200069971的用戶ID爲true?

+2

這沒有任何意義。你能否改正實際的問題? – gahooa 2012-02-06 13:18:58

回答

6
<cfif userid NEQ false> 
    // do something 
<cfelse> 
    // do something else 
</cfif> 
+0

我還會在IF語句中添加一條評論,說明它不是一個平坦的布爾評估(即:從該語句看來,它看起來像userid是一個布爾值,而不是可能碰巧持有「false」的字符串),解釋了什麼看起來像'',這是什麼人可能會把它誤認爲cortorted方式。我認爲有一種方法,返回字符串或布爾混合是一種可憐的方法(出於這個原因),順便說一句。 – 2012-02-06 16:57:19

+0

這是一個很好的方法,並且可以正常工作,但我不認爲它很有表現力。它暗示着userid是一個布爾值,由於ColdFusion的強大功能,許多事情都被隱式轉換爲布爾值。但是,如果您在腦海中解析代碼,則會讀取「如果用戶標識的值爲false」,您必須在其中進行隱式轉換。它就是爲什麼我採用我在答案中所做的方法。它寫道:「如果用戶名有一定的長度,那麼這樣做是否合適?」。在我看來它更具表現力,但它只是一種意見。 – bittersweetryan 2012-02-07 13:04:39

5

如果我理解正確,我會做這樣的事情:

if(len(userid)){ 
    //true 
} 
else{ 
    //false 
} 

ColdFusion的0是假,任何其他數(正或負)是真實的。

+1

我第二次苦苦思索的答案還有一點小小的澄清。爲一個函數返回不同的變量類型不是一個好主意(例如:string或boolean/false),或者至少有一個這樣直接。發送一個字符串或者空格將是最好的,在這種情況下,你可以使用len()。 – 2012-02-06 17:05:47