Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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_Parameters_Type Hinting - Fatal编程技术网

数组参数中的PHP差异

数组参数中的PHP差异,php,parameters,type-hinting,Php,Parameters,Type Hinting,在PHP7中,我只希望参数中包含数组,但它们之间的区别是什么: function exampleA(array $a, array $b) { } 及 不确定我应该使用哪一个。评论很好,但我想我们需要一个答案 exampleA()使用array$a强制参数为array类型,如果不是,则抛出可捕获的错误: exampleA(); exampleA(1, 'A'); 两者都产生: 可捕获的致命错误:传递给exampleA()的参数1必须是数组类型,未给定,在文件的X行调用,并在文件的X行定义

在PHP7中,我只希望参数中包含数组,但它们之间的区别是什么:

function exampleA(array $a, array $b)
{

}


不确定我应该使用哪一个。

评论很好,但我想我们需要一个答案

exampleA()
使用
array$a
强制参数为
array
类型,如果不是,则抛出可捕获的错误:

exampleA();
exampleA(1, 'A');
两者都产生:

可捕获的致命错误:传递给exampleA()的参数1必须是数组类型,未给定,在文件的X行调用,并在文件的X行定义

而在
exampleB()
中使用
$a=array()

未提供值时,将默认值设置为空数组:

exampleB();
收益率:

array(2) {   ["a"]=>   array(0) {   }   ["b"]=>   array(0) {   } }
array(2) {   ["a"]=>   int(1)   ["b"]=>   string(1) "A" }
但是,当提供值时,无论类型如何,都会使用这些值:

exampleB(1, 'A');
收益率:

array(2) {   ["a"]=>   array(0) {   }   ["b"]=>   array(0) {   } }
array(2) {   ["a"]=>   int(1)   ["b"]=>   string(1) "A" }

第二个选项是将默认值设置为空数组。如果在没有参数的情况下调用该函数,$a和$b将是空数组
函数exampleA(数组$a,数组$b)
明确要求使用数组,如果传入的参数不是数组,则会抛出错误
函数exampleB($a=array(),$b=array)
不关心$a和$b的类型,如果未传入,则会将它们设置为空数组。