#23804 [Ver->WFx]: passing wrong parameter count to user functions gives no warnings

From: 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

« previous php.bugs (#40407) next »