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

Php 不允许向函数传递的参数多于定义的参数

Php 不允许向函数传递的参数多于定义的参数,php,function,parameters,restriction,Php,Function,Parameters,Restriction,在php中,您通常可以使用比已定义的参数更多的参数调用函数,例如 function f($a, $b) { return $a . $b; } f('a', 'b', 'c', 'e'); 这是完全正确的 我知道您可以定义参数数量可变的函数。但在大多数情况下,这不是你想要做的。 因此,在这些情况下,如果您错误地将替换为,您甚至不会收到警告 $x = '0'; f('a' , 'b' . $x . 'c') // returns ab0c f('a' , 'b' , $x . 'c')

在php中,您通常可以使用比已定义的参数更多的参数调用函数,例如

function f($a, $b) {
     return $a . $b;
}
f('a', 'b', 'c', 'e');
这是完全正确的

我知道您可以定义参数数量可变的函数。但在大多数情况下,这不是你想要做的。 因此,在这些情况下,如果您错误地将
替换为
您甚至不会收到警告

$x = '0';
f('a' , 'b' . $x . 'c') // returns ab0c
f('a' , 'b' , $x . 'c') // returns ab
现在在PHP7中有了
函数f($a,$b,$others)
语法。因此,在princable中,可以区分变参数函数和普通函数


有没有办法在调用参数过多的函数时获得通知?

有一种方法可以实际计算发送到函数的变量,但是您只能在函数内部或函数之前通过计算发送的项来完成此操作

有关更多信息,请参阅

还可以使用获取发送到函数的当前参数

但是,您的问题需要以下内容:

function(){
    $count = func_num_args();
    if($count > 3){
        //too many args
    }
    else{
       //continue your actual code
    }
}