这样做可以在调用函数时不必定义所有变量

时间:2014-06-16 00:23:55

标签: php function hosting warnings

我正在使用000webhost,我制作了一个自定义的PHP函数,如下所示:

function example($test1, $test2, $test3) {
   echo $test1 . $test2 . $test3;
}

然后我做example('hello');并说:

PHP Error Message

Warning: Missing argument 2 for example(), called in /home/a8525001/public_html/test.php on line 5 and defined in /home/a8525001/public_html/test.php on line 2

Free Web Hosting

PHP Error Message

Warning: Missing argument 3 for example(), called in /home/a8525001/public_html/test.php on line 5 and defined in /home/a8525001/public_html/test.php on line 2

Free Web Hosting
1 

有没有办法可以在不访问服务器的php.ini的情况下停止这些警告?相同的代码在我的xampp服务器上工作正常......

提前致谢,

2 个答案:

答案 0 :(得分:1)

您有几个选项,其中有两个选项:

设置为null(定义它们)时可以使用以下内容。

function example($test = NULL, $test2 = NULL, test3 = NULL) {
    // use variables here but do something like this to check it isn't empty
    if($test !== NULL) {
        echo $test;
    }
    /// etc...and use the rest in whatever you need
}

或者你可以使用func_get_args(),这可以让你像这样:

function example() {
    $args = func_get_args();
    foreach($args as $i => $arg) {
        echo "Argument {$i} is: {$arg} <br />";
    }
}

允许你做类似的事情:

example('derp', 'derp1', 'derp2');

以上功能将返回:

Argument 0 is: derp
Argument 1 is: derp1
Argument 2 is: derp2

(可选):您可以使用func_num_args()来确保在函数中设置参数。

答案 1 :(得分:0)

得到答案:D,

要使函数中的变量可选,请在代码本身中定义它,例如:

function example($test1, $test2 = NULL, $test3 = NULL) {
   echo $test1 . $test2 . $test3;
}

然后,已经定义了值,但是当调用函数时,如果定义了可选值,它将覆盖NULL。

来源:PHP function missing argument error