#23804 [Ver->WFx]: passing wrong parameter count to user functions gives no warnings
| From: | sniper@php.net | Date: | Mon, 26 May 2003 02:30:41 +0000 |
| Subject: | #23804 [Ver->WFx]: passing wrong parameter count to user functions gives no warnings | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-40407@lists.php.net to get a copy of this message | ||
ID: 23804
Updated by: sniper@php.net
Reported By: meebey@php.net
-Status: Verified
+Status: Wont fix
Bug Type: Scripting Engine problem
Operating System: Debian GNU/Linux
PHP Version: 4.3.1
New Comment:
There's nothing to fix here, more is broken if some error is added..
Previous Comments:
------------------------------------------------------------------------
[2003-05-25 17:32:48] meebey@php.net
I didn't say anything about calling an user function with a variable
parameter list, that is a completely different situation.
------------------------------------------------------------------------
[2003-05-25 17:22:48] b_ulrich at t-online dot de
I think this isn't a bug and there should be no warning.
Reason:
Users can define functions of variable number of parameters.
So you can define a function with no parameters like
function foo() { ...} and cal it with a different number of parameters
like foo($a,$b); foo($a,$b,$c,$d);
To handle them ther are functions like func_num_arg() or
func_get_args()
So warnings are wrong in that case.
------------------------------------------------------------------------
[2003-05-25 17:02:28] nicos@php.net
Reproduced with 4.3.2RC4 and PHP5.
I'm not sure if its a feature request or if its a bug but its true that
IMHO, it should raise an E_WARNING as ZEND_WRONG_PARAM_COUNT(); or at
least an E_NOTICE.
------------------------------------------------------------------------
[2003-05-25 16:59:09] meebey@php.net
When I pass 3 parameters to an user PHP function, that needs 2
parameters, I don't get any fatal, warning nor notice.. The function is
just called and the 3. parameter ignored...
When C PHP Functions are called like mysql_connect() with a wrong
parameter count, I will get a E_WARNING. It should be the same with the
user functions...
ZEND_API void zend_wrong_param_count(TSRMLS_D) does this for the C
functions...
Also it's the same behaviour on ZendEngine2, no fatal, warning nor
notice..
here a simple script to reproduces/test the bug:
#!/usr/local/bin/php
<?php
// to be sure we get all fatal, warnings and notices
error_reporting(E_ALL);
ini_set("display_errors","1");
// declaring a function which takes _2_ parameters
function foo($param1, $param2) {
echo "function foo is called, all went fine...\n";
}
// calling the function and passing _3_ parameters
foo(1, 2, 3);
?>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=23804&edit=1