Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 非常规传递参数的奇怪行为_Php_Function_Default Arguments - Fatal编程技术网

Php 非常规传递参数的奇怪行为

Php 非常规传递参数的奇怪行为,php,function,default-arguments,Php,Function,Default Arguments,在代码中调用函数时,我意外地复制了函数头,出于某种原因,代码仍然有效。为什么会这样 $data = Utilities::multi_curl($substance_year_combo_groups, $files = false, $download_folder = null, $file_name = null, $pop = false, $handle_key = 'results'); 显然,应该这样写: $data = Utilities::multi_curl($substa

在代码中调用函数时,我意外地复制了函数头,出于某种原因,代码仍然有效。为什么会这样

$data = Utilities::multi_curl($substance_year_combo_groups, $files = false, $download_folder = null, $file_name = null, $pop = false, $handle_key = 'results');
显然,应该这样写:

$data = Utilities::multi_curl($substance_year_combo_groups, false, null, null, false, 'results');
但是我可以在调试中看到最后一个参数确实是
“results”
。纯变量赋值不应该被计算为
true


默认情况下,
$handle\u键
在函数标题中为
null

对参数进行求值,并传入这些求值的结果

请记住,在PHP中,分配有一个“返回值”,即分配的值

$foo = 'bar';
echo $foo;
$result = some_function($foo = 'blah');
echo $foo;
此代码将呼出
barblah
,并将
blah
作为参数传递到
some_函数中

这与允许以下操作的机制完全相同:

$a = $b = $c = $d = 42;

,并将
42
分配给所有四个变量。

对参数进行求值,并将这些求值的结果传入

请记住,在PHP中,分配有一个“返回值”,即分配的值

$foo = 'bar';
echo $foo;
$result = some_function($foo = 'blah');
echo $foo;
此代码将呼出
barblah
,并将
blah
作为参数传递到
some_函数中

这与允许以下操作的机制完全相同:

$a = $b = $c = $d = 42;

,并将
42
分配给所有四个变量。

对参数进行求值,并将这些求值的结果传入

请记住,在PHP中,分配有一个“返回值”,即分配的值

$foo = 'bar';
echo $foo;
$result = some_function($foo = 'blah');
echo $foo;
此代码将呼出
barblah
,并将
blah
作为参数传递到
some_函数中

这与允许以下操作的机制完全相同:

$a = $b = $c = $d = 42;

,并将
42
分配给所有四个变量。

对参数进行求值,并将这些求值的结果传入

请记住,在PHP中,分配有一个“返回值”,即分配的值

$foo = 'bar';
echo $foo;
$result = some_function($foo = 'blah');
echo $foo;
此代码将呼出
barblah
,并将
blah
作为参数传递到
some_函数中

这与允许以下操作的机制完全相同:

$a = $b = $c = $d = 42;

,并将
42
赋值给所有四个变量。

赋值操作的结果就是被赋值的值。例如,我可以这样做:

if($result = do_something_that_may_fail()) {}
无论
do\u something\u可能失败()
方法返回的结果是什么,都将分配给
$result
,如果没有计算为false,则执行
if
块。这样做的副产品是,您仍然可以在
if
块中引用
$result


在方法调用中也会发生同样的情况,值被赋值,值本身被发送到方法。

赋值操作的结果就是被赋值的值。例如,我可以这样做:

if($result = do_something_that_may_fail()) {}
无论
do\u something\u可能失败()
方法返回的结果是什么,都将分配给
$result
,如果没有计算为false,则执行
if
块。这样做的副产品是,您仍然可以在
if
块中引用
$result


在方法调用中也会发生同样的情况,值被赋值,值本身被发送到方法。

赋值操作的结果就是被赋值的值。例如,我可以这样做:

if($result = do_something_that_may_fail()) {}
无论
do\u something\u可能失败()
方法返回的结果是什么,都将分配给
$result
,如果没有计算为false,则执行
if
块。这样做的副产品是,您仍然可以在
if
块中引用
$result


在方法调用中也会发生同样的情况,值被赋值,值本身被发送到方法。

赋值操作的结果就是被赋值的值。例如,我可以这样做:

if($result = do_something_that_may_fail()) {}
无论
do\u something\u可能失败()
方法返回的结果是什么,都将分配给
$result
,如果没有计算为false,则执行
if
块。这样做的副产品是,您仍然可以在
if
块中引用
$result


方法调用中也发生了同样的情况,正在分配值,并且值本身正在发送到方法。

已回答,但要包含来自的引用

赋值表达式的值是指定的值。也就是说,“$a=3”的值是3


已回答,但要包括来自

赋值表达式的值是指定的值。也就是说,“$a=3”的值是3


已回答,但要包括来自

赋值表达式的值是指定的值。也就是说,“$a=3”的值是3


已回答,但要包括来自

赋值表达式的值是指定的值。也就是说,“$a=3”的值是3


不,变量赋值按原样“计算”变量的值。这就是为什么你可以做一些类似于
if($myVar=myFunc($myParam)==$myOtherVar){//do something}
@PatrickQ的事情,你绝对应该把它作为answer@ThomasDavidPlat目前的答案更全面。我的评论就是这样。我很少觉得简单的“是/否”答案需要更多的注释。不,变量赋值实际上是“评估”变量的值。这就是为什么你可以做一些类似于
if($myVar=myFunc($myParam)==$myOtherVar){//do something}
@PatrickQ的事情,你绝对应该把它作为answer@ThomasDavidPlat目前的答案更全面。我的评论就是这样。我很少觉得简单的“是/否”答案需要更多的评论