Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果在If表达式和If语句中使用相同的函数,是否会调用两次?_Php_If Statement - Fatal编程技术网

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()
return
NULL
而不是
false
。在问题中,我指的是
access\u database()
从DB返回字符串。谢谢!如果(function()==1&&function()==2),在数组(function(),[1,2])中有糖吗?
如果没有5.3,请尝试:
$output=($result=access\u database())$结果:无效@abracadver,我从没想过用括号括起来,谢谢!
$output = access_database() ?: NULL;