PHP 4.0 Bug #9576 Updated: Parse error with ($i%2) ? echo '':echo''

From: Date: Wed, 07 Mar 2001 06:05:55 +0000
Subject: PHP 4.0 Bug #9576 Updated: Parse error with ($i%2) ? echo '':echo''
Groups: php.dev 
Request: Send a blank email to php-dev+get-48128@lists.php.net to get a copy of this message
ID: 9576 User Update by: yasuo_ohgaki@hotmail.com Status: Closed Bug Type: Scripting Engine problem Description: Parse error with ($i%2) ? echo '':echo'' Ok thanks. "echo" is not a function like "include". (include is a language construct, right?) Then I expect following should not work. ($some_var) ? include('ture.inc') : include('false.inc'); but, it works for some reason..... (or include() is a function?) Not a big deal though. Regards, -- Yasuo Ohgaki Previous Comments: --------------------------------------------------------------------------- [2001-03-06 08:25:56] stas@php.net echo is a statement, not a function, thus cannot be used in an expression. You are right to use print. --------------------------------------------------------------------------- [2001-03-06 07:09:01] yasuo_ohgaki@hotmail.com Miner parser bug. PHP4.0.4pl1 on my Linux (PHP is running as Apache 1.3.17 module) gives parse error with following code. <tr class=<?php ($i % 2) ? echo('even') : echo('odd') ?>> This one works as expected <tr class=<?php ($i % 2) ? print('even') : print('odd') ?>> Hope this helps. --- Yasuo Ohgaki === SOURCE BEGIN ==== <html> <head> <title>test</title> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <link rel="stylesheet" href="../lib/css/std.css"> <style type="text/css"> <!-- .odd { background: #CCCCFF} .even { background: #CCCCCC} --> </style> </head> <body bgcolor="#FFFFFF"> <table width="80%" border="2" cellspacing="1" cellpadding="1"> <?php for ($i = 0; $i < 100; $i++) { ?> <!-- <tr class=<?php if ($i % 2 == 0) echo('even'); else echo('odd'); // OK?>> --> <!-- <tr class=<?php ($i % 2) ? print('even') : print('odd'); // OK ?>> --> <tr class=<?php ($i % 2) ? echo('even') : echo('odd'); // NOT OK ?>> <td>@</td> <td>@</td> </tr> <?php } // END for( ) loop ?> </table> </body> </html> ==== END SOURCE ==== --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=9576

« previous php.dev (#48128) next »