【发布时间】:2014-01-26 15:43:58
【问题描述】:
我想知道我是否可以制作一个单行三元运算符来检查函数返回的值并使用它?
让我们检查一下这个示例(PHP)代码:
return get_db_row($sql_parameters) ? get_db_row($sql_parameters) : get_empty_row();
我的目的是返回 get_db_row() ,但如果它是空的,则返回一个空行。
但是,我认为,这条线路会调用get_db_row()两次。对吗?
我想调用一次。一种解决方案是将返回值存储在这样的变量中:
$row = get_db_row($sql_parameters);
return $row ? $row : get_empty_row();
但是我可以一行完成吗?
类似:
return ($row = get_db_row()) ? $row : get_empty_row();
有可能吗?
感谢您的帮助!
【问题讨论】:
-
您的最后一个示例应该可以正常工作。您将 get_db_row() 的结果分配给 $row 变量并同时对其进行评估。你试过了吗?这是查看它是否有效的最佳方法。
标签: php performance memory ternary-operator