Edit report at http://bugs.php.net/bug.php?id=51340&edit=1
ID: 51340 Updated by: [email protected] Reported by: wrzasq at gmail dot com Summary: const keyword inside code blocks causes parse error. Status: Open -Type: Bug +Type: Documentation Problem Package: Scripting Engine problem Operating System: Debian GNU/Linux x86_64 PHP Version: 5.3.2 New Comment: Constants defined using "const" are set during compile-time of the script whereas define() is done at runtime. By this const can't be used in conditional blocks, functions, ... This should be documented properly. Previous Comments: ------------------------------------------------------------------------ [2010-03-21 04:15:39] wrzasq at gmail dot com Description: ------------ I tried to define constant using new const keyword structure in PHP 5.3. This one worked fine: -- $ cat test1.php <?php const FOO = 1; echo FOO; -- I checkd also this one: $ cat test2.php -- <?php if(true) { define('FOO', 1); } echo FOO; -- But this one crushes: -- $ cat test3.php <?php if(true) { const FOO = 1; } echo FOO; -- In fact im not using PHP 5.3.2, but PHP 5.3.1, but i don't have any place to test it against PHP 5.3.2 and I don't see fix for this issue on changelog fixes list. Expected result: ---------------- 1 1 1 Actual result: -------------- 1 1 Parse error: syntax error, unexpected T_CONST in /home/wrzasq/public_html/engine/chillout/projects/application/test3.php on line 4 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=51340&edit=1
