我正在使用PHP 5.5从数字postgresql数据库表字段中检索数值。它可以来自数据库作为 null 或作为实际数字,无论哪种方式我将其存储在变量中。因为我们中的一些人可能知道也可能不知道 null * 1 = 0,这是我喜欢做的事情,但我担心这是否是错误的,或者将潜在的 null 值转换为零而不实际检查值是否是一种不好的做法。见下文:
...
$fieldVal *= 1; //assume at this point this holds value returned by DB
...
因此,如果 db 返回 null,则$fieldVal将变为零,任何非 null 值将保持不变。非常感谢您的见解。
更改查询以包含 COALESCE 并解决空情况
SELECT fieldNane
自
SELECT COALESCE(fieldName, 0)
顺便说一句:是的,引入这种黑客的不好做法。
这实际上取决于您与谁交谈,以及您检查 null 与整数的方法是否是不好的做法。在软件开发中,有一千种方法可以执行单个任务,因此这确实是一个意见问题。
我个人认为这是不好的做法,仅仅是因为 PHP 为您提供了检查变量是否包含 null 或包含整数类型的工具。其中一些工具是这样的功能
is_int()
或
is_null()
虽然这些函数在某些方面确实有其自身的缺点,但我的观点是,如果该语言有工具来执行您觉得正在"黑客"在一起的事情,请使用该语言提供的工具。