Hi,
Although this is not as hot as references or Unicode stuff, I would like to
discuss a new topic.
Currently PHP accepts more parameters to a function than the required.
In English:
<?
function a($b) {}
a(1,2,3);
?>
PHP accepts this and generates no errors. My purpose is to start generating
an E_NOTICE, just like we do for not yet initialized variables.
This behaviour has already beaten me for a couple of times, because I had a
program with functions with similar names, but with different number of
parameters. The result for calling the wrong function? A nice infinite loop
:)
I hope this is not hard to implement (maybe in the parser, to get the errors
on compile time - for performance).
Regards,
Nuno
<?
function a($b) {}
a(1,2,3);
?>PHP accepts this and generates no errors. My purpose is to start
generating an E_NOTICE, just like we do for not yet initialized variables.
This would break BC (btw a hot topic nowadays, too ;) ) so this is not a
good idea. Also it makes no sense in an oo-driven environment as long as
there is no way of overloading methods.
Best way to deal with this is to write gateway methods that delegate to the
appropriate methods based on the passed in parameters.
Nuno Lopes wrote:
<?
function a($b) {}
a(1,2,3);
?>PHP accepts this and generates no errors. My purpose is to start
generating an E_NOTICE, just like we do for not yet initialized variables.
No, stupid output!
Generating E_NOTICE
is not a good idea. You don't need to create
functions with variable arguments count like printf()
?
--
Ondrej Ivanic
(ondrej@kmit.sk)
Nuno Lopes wrote:
<?
function a($b) {}
a(1,2,3);
?>PHP accepts this and generates no errors. My purpose is to start
generating an E_NOTICE, just like we do for not yet initialized
variables.No, stupid output!
Generating
E_NOTICE
is not a good idea. You don't need to create functions
with variable arguments count likeprintf()
?
No, I at least I think I've never created such a function. To be sincere,
I've not even remembered of such functions when I was writing that e-mail :)
So, I think my suggestion is bogus.. Although a special syntax (copied from
C) could be introduced.. well maybe not..
Nuno
Nuno Lopes schrieb:
Currently PHP accepts more parameters to a function than the required.
In English:
<?
function a($b) {}
a(1,2,3);
?>PHP accepts this and generates no errors.
This is expected behaviour in PHP! Since PHP does not offer true
overloading of method headers (multiple methods or functions with the
same name but different parameter lists) this is badly needed.
AllOLLi
Bender: "We're making beer. I'm the brewery."
Dwight: "I heard alcohol makes you stupid."
Fry: "No I'm... doesn't."
[Futurama 312]
No way.
--Jani
Hi,
Although this is not as hot as references or Unicode stuff, I would like to
discuss a new topic.
Currently PHP accepts more parameters to a function than the required.
In English:
<?
function a($b) {}
a(1,2,3);
?>PHP accepts this and generates no errors. My purpose is to start generating an
E_NOTICE, just like we do for not yet initialized variables.
This behaviour has already beaten me for a couple of times, because I had a
program with functions with similar names, but with different number of
parameters. The result for calling the wrong function? A nice infinite loop :)I hope this is not hard to implement (maybe in the parser, to get the errors
on compile time - for performance).Regards,
Nuno
--
Donate @ http://pecl.php.net/wishlist.php/sniper
Disclaimer: Donating money may make me happier and friendlier for a limited period!
Hello Jani,
Tuesday, September 20, 2005, 11:19:28 AM, you wrote:
No way.
Yep no way! PHP doesn't offer a '...' signature so we need it the way it is.
And i don't think we want to have those '...' signatures.
marcus
Hi,
Although this is not as hot as references or Unicode stuff, I would like to
discuss a new topic.
Currently PHP accepts more parameters to a function than the required.
In English:
<?
function a($b) {}
a(1,2,3);
?>PHP accepts this and generates no errors. My purpose is to start generating an
E_NOTICE, just like we do for not yet initialized variables.
This behaviour has already beaten me for a couple of times, because I had a
program with functions with similar names, but with different number of
parameters. The result for calling the wrong function? A nice infinite loop :)I hope this is not hard to implement (maybe in the parser, to get the errors
on compile time - for performance).Regards,
Nuno
--
Donate @ http://pecl.php.net/wishlist.php/sniper
Disclaimer: Donating money may make me happier and friendlier for a limited period!
Best regards,
Marcus
Hi,
Although this is not as hot as references or Unicode stuff, I would like to
discuss a new topic.
Currently PHP accepts more parameters to a function than the required.
In English:
<?
function a($b) {}
a(1,2,3);
?>PHP accepts this and generates no errors. My purpose is to start generating an
E_NOTICE, just like we do for not yet initialized variables.
No way, we have func_get_arg()
for this, do to some kind of overloading.
Derick
--
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org