Php 如果在If表达式和If语句中使用相同的函数,是否会调用两次?
以下构造是否访问数据库两次Php 如果在If表达式和If语句中使用相同的函数,是否会调用两次?,php,if-statement,Php,If Statement,以下构造是否访问数据库两次 $output = access_database() ? access_database() : NULL; 我应该做以下几点吗 $result = access_database(); $output = $result ? $result : NULL; 对。在您的案例中,使用此PHP语法可以避免这种情况 $output = access_database() ? : NULL; 执行此操作时:$result=access_database()结果从函数执
$output = access_database() ? access_database() : NULL;
我应该做以下几点吗
$result = access_database();
$output = $result ? $result : NULL;
对。在您的案例中,使用此PHP语法可以避免这种情况
$output = access_database() ? : NULL;
执行此操作时:
$result=access_database()代码>结果<代码>从函数执行中接收值,而不是访问时将执行的引用
因此,是的,以下行将执行您的函数两次:
$output = access_database() ? access_database() : NULL;
一个选项是使用(php版本>=5.3):
您可以对此进行测试,创建一个方法,然后将其放入这样的构造中,它将告诉您需要知道的内容
。不知道为什么要这样做,但如果这是常见的,则使用access\u database()
returnNULL
而不是false
。在问题中,我指的是access\u database()
从DB返回字符串。谢谢!如果(function()==1&&function()==2),在数组(function(),[1,2])中有糖吗?如果没有5.3,请尝试:$output=($result=access\u database())$结果:无效代码>@abracadver,我从没想过用括号括起来,谢谢!
$output = access_database() ?: NULL;