以下构造是否两次访问数据库?
$output = access_database() ? access_database() : NULL;
我是否应该做以下事情?
$result = access_database();
$output = $result ? $result : NULL;
答案 0 :(得分:1)
是。使用这个PHP语法糖来避免这种情况。
$output = access_database() ? : NULL;
答案 1 :(得分:1)
执行此操作时:$result = access_database();
result
接收执行函数的值,而不是访问时将执行的引用。
所以,是的,以下行将执行两次你的函数:
$output = access_database() ? access_database() : NULL;
一个选项是使用elvis operator(php版本> = 5.3):
$output = access_database() ?: NULL;