coldfusion - 在 ColdFusion 中返回 'nil' 值的替代方法

标签 coldfusion cfml

我有一个函数可以通过电子邮件在数据库中查找用户并返回一个包含他们的 ID、电子邮件和散列密码的结构。但是由于 ColdFusion 缺少 null/nil/none 类型,我不知道如果用户不存在该返回什么。

我的第一个解决方案是返回 false,然后只使用 if(user == false) 来查看用户是否存在,但是 == ,ColdFusion 将尝试将有效的用户结构转换为 bool 值,并在无法转换时抛出错误。

我的第二个解决方案是只return; 没有值,但是我的检查变成了if(isDefined("foo"))。在我看来,这看起来很丑陋,并且让重构变得有点棘手,因为变量名现在也在一个字符串中......

在 ColdFusion 中是否有一种干净的方法来返回“未找到”值?

最佳答案

自 CF9 以来,CF 具有 isNull(),例如:

<cffunction name="getUser">
  <cfargument name="userID">
  <cfquery name="qUser">
    SELECT * FROM users where userID = <cfqueryparam value="#userID#">
  </cfquery>
  <cfif qUser.recordCount>
    <cfreturn {name=qUser.name}>
  </cfif>
</cffunction>

<cfset var user = getUser(1)>
<cfif isNull(user)>
   <!-- user not found -->
<cfelse>
   Welcome #user.name#
</cfif>

关于coldfusion - 在 ColdFusion 中返回 'nil' 值的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17868258/

相关文章:

Coldfusion 查询断列结构

mysql - 如何将二进制数据从 MySQL 转换为 ColdFusion 11 中的字符串?

coldfusion - 在 CFML 中循环一个集合(结构)有什么更好的方法吗?

php - 将 mysql_connect 转换为 cfquery

pdf - 如何强制下载 url 中的 pdf?

javascript - 如何使用链接提交表单字段值?

coldfusion - 如何在每 4 条记录后在 cfdocument 中插入一个分页符

Coldfusion 奇怪的额外空间

coldfusion - CFQUERY 没有正确转义单引号