2012-02-06 77 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