0

选项1:

<?php 
function hookRequest($func, $params = array()){
    var_dump($func);
    var_dump($params);
}

hookRequest('func1', array('param1', 'param2'));

选项2:

<?php 
function hookRequest($func, $params){
    var_dump($func);
    var_dump($params);
}

hookRequest('func1', array('param1', 'param2'));

问题:

以上两个脚本都可以工作。但是我看到一些脚本使用这种方式: ,所以只是想找出和$params = array()之间有什么区别?$params = array()$params

4

4 回答 4

2

如果您没有将任何内容传递给 option1

hookRequest('func1');

那么 $params 现在是一个空数组。

function foobar($something,$foo = 'var')
{
   var_dump($something,$foo);
}

foobar('something');

输出:

string(9) "something" string(3) "var"
于 2013-08-15T01:39:45.150 回答
1

看看“函数参数”的基础知识

http://php.net/manual/en/functions.arguments.php

于 2013-08-15T01:47:55.793 回答
0

不同之处在于选项 1 使第二个参数可选,因此您可以省略第二个选项,默认值将被赋予 $param。

选项 2 使第二个参数成为必需参数,如果您不提供至少两个参数,则会返回警告,例如

Warning: Missing argument 2 for hookRequest
于 2013-08-15T01:45:53.450 回答
0

它在 PHP 中称为默认参数。

当您声明您的函数时,hookRequest($func, $params = array()){...告诉$paramas = array()它在传递的参数为空时将其设置为数组。

于 2013-08-15T01:47:05.443 回答