I guess to get a clear error message, because this is a BC change. Many people would wonder why working scripts are causing parse errors after upgrade of php. Makes sense to have error messages as clear as possible ;)
Jan Dolecek juzna...@gmail.com 2011/7/29 Kiyoto Tamura <owenes...@gmail.com>: > Hi Johannes, > > Thanks for your reply :) What I meant was that why does the parser > still accept any expression after T_BREAK/CONTINUE and defer the error > check to zend_do_brk_cont? Isn't it clearer to only accept if the > expression following T_BREAK/CONTINUE is a positive integer (if there > is any expression at all)? > > Kiyoto > > 2011/7/28 Johannes Schlüter <johan...@schlueters.de>: >> On Thu, 2011-07-28 at 16:10 -0700, Kiyoto Tamura wrote: >>> Hi, >>> >>> I am new to the PHP internals, and I was just looking through the code >>> related to parsing break/continue statements. It looks that as of PHP >>> 5.4, Zend/zend_language_parser.y accepts both "T_BREAK expr" and >>> "T_CONTINUE expr" and check to make sure "expr" is a positive integer >>> in the function zend_do_brk_cont. Doesn't it make more sense to >>> replace "T_BREAK expr" with "T_BREAK <positive integer>" (the same >>> goes for the continue statement)? >> >> T_BREAK expr allows things like >> >> $foo = rand(...); >> break $foo; >> >> but we've dropped that for performance reasons in 5.4. >> >> johannes >> >>> Thanks in advance! >>> >>> kiyoto >>> >> >> >> > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php