数组参数中的PHP差异
在PHP7中,我只希望参数中包含数组,但它们之间的区别是什么:数组参数中的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行定义
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的类型,如果未传入,则会将它们设置为空数组。