Ferenc Kovacs wrote (on 13/08/2014):
sorry to jump in this late, but I'm not sure that it is a good idea to only
reject the multiple default blocks but keep the ability to have the same
case multiple times:
http://3v4l.org/eZdPU
Multiple cases with the same value are a lot harder to prevent (if not
impossible), because there is no requirement for the cases to be static,
or of the same type. The spec actually calls this out with a couple of
examples:
https://github.com/php/php-langspec/blob/master/spec/11-statements.md#the-switch-statement
It would be a bit awkward if this was a syntax error:
switch ( $foo ) {
case 30:
case 30:
}
But this was fine:
switch ( $foo ) {
case 30.0:
case 30:
case 10 * 3:
}
And this, which is completely undetectable at parse time:
$bar = 30;
// ... arbitrary amount of code
switch ( $foo ) {
case $bar:
case 30:
}
--
Rowan Collins
[IMSoP]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php