是否"Bad"练习乘以$val * 1将null转为零
Is it "Bad" practice to multiply $val * 1 to convert null to zero
我正在使用 PHP 5.5 从数字 postgresql 数据库 table 字段中检索数值。它可以作为空值或实际数字来自数据库,无论哪种方式我都将其存储在变量中。因为我们中的一些人可能知道也可能不知道 null * 1 = 0,这是我喜欢做的事情,但我担心这是错误的还是不好的做法将潜在的空值转换为零,而无需实际检查该值。见下文:
...
$fieldVal *= 1; //assume at this point this holds value returned by DB
...
因此,如果数据库返回空值,则 $fieldVal 将变为零,任何非空值将保持不变。非常感谢您的见解。
更改您的查询以包含 COALESCE 并解决空案例
SELECT fieldNane
到
SELECT COALESCE(fieldName, 0)
顺便说一句:是的,引入这些技巧是不好的做法。
这实际上取决于您与谁讨论您检查 null 与整数的方法是否是不好的做法。在软件开发中,执行单个任务有上千种方法,所以这真的是见仁见智的问题。
我个人认为这是不好的做法,因为 PHP 为您提供了检查变量是否包含 null 或包含整数类型的工具。其中一些工具的功能类似于
is_int()
或
is_null()
虽然这些功能在某些方面确实有其自身的缺点,但我的观点是,如果该语言有工具来执行您认为自己是的事情"hacking"一起,使用语言提供的工具。
我正在使用 PHP 5.5 从数字 postgresql 数据库 table 字段中检索数值。它可以作为空值或实际数字来自数据库,无论哪种方式我都将其存储在变量中。因为我们中的一些人可能知道也可能不知道 null * 1 = 0,这是我喜欢做的事情,但我担心这是错误的还是不好的做法将潜在的空值转换为零,而无需实际检查该值。见下文:
...
$fieldVal *= 1; //assume at this point this holds value returned by DB
...
因此,如果数据库返回空值,则 $fieldVal 将变为零,任何非空值将保持不变。非常感谢您的见解。
更改您的查询以包含 COALESCE 并解决空案例
SELECT fieldNane
到
SELECT COALESCE(fieldName, 0)
顺便说一句:是的,引入这些技巧是不好的做法。
这实际上取决于您与谁讨论您检查 null 与整数的方法是否是不好的做法。在软件开发中,执行单个任务有上千种方法,所以这真的是见仁见智的问题。
我个人认为这是不好的做法,因为 PHP 为您提供了检查变量是否包含 null 或包含整数类型的工具。其中一些工具的功能类似于
is_int()
或
is_null()
虽然这些功能在某些方面确实有其自身的缺点,但我的观点是,如果该语言有工具来执行您认为自己是的事情"hacking"一起,使用语言提供的工具。