From:             mg at memedia dot de
Operating system: Various
PHP version:      5.0.5
PHP Bug Type:     Scripting Engine problem
Bug description:  undefined function parse-error in if-clause

Description:
------------
This problem only occurs sometimes. I only had it for 5-8 times, but it
really drives me crazy for now. I can't explain myself to be such a bad
programmer, so it must be a bug. 


It occurs sometimes in if clauses like:

if (isset($a) || isset($b)) {
        // do something
}

..and PHP returns 
"Fatal error: Call to undefined function  () in /index.php on line XX"


If the if-clause was "((isset($a)) || (isset($b)))" it helped to remove
the additional parenthesis, and do "(isset($a) || isset($b))2 instead.
Also the error was eliminated in some cases by adding another side to the
expressions, like "((isset($a)==true) || (isset($b)==false))".

But for now I'm really fed up with this:

$a=isset($_GET['action']);
$b=$a && (strpos($_GET['action'], 'admin')===false);

if (($a) || ($b)) {
        echo "if it works or not doesn't matter; the question is if it can be
parsed";
}

I tried everything but I can't get that expression to work. In antoher
case i really wrote TWO if-clauses with only one statement that called one
and the same function. Working an above code also revaled that $b becomes
unexptected, when writing:

if ($a || $b) {
        echo "if it works or not doesn't matter; the question is if it can be
parsed";
}
Parse error: parse error, unexpected T_VARIABLE in /index.php on line 353


Anyway, that error occurs only in some bunch of code and cannot really be
reproduced with a single file containing above code-snippets.

I appreciate appropiate workarounds for that problem ;)


PHP Version doesn't matter. I had the problem with PHP 4.x and still have
it with 5.04 and 5.1RC3.



-- 
Edit bug report at http://bugs.php.net/?id=35184&edit=1
-- 
Try a CVS snapshot (php4):   http://bugs.php.net/fix.php?id=35184&r=trysnapshot4
Try a CVS snapshot (php5.0): 
http://bugs.php.net/fix.php?id=35184&r=trysnapshot50
Try a CVS snapshot (php5.1): 
http://bugs.php.net/fix.php?id=35184&r=trysnapshot51
Fixed in CVS:                http://bugs.php.net/fix.php?id=35184&r=fixedcvs
Fixed in release:            http://bugs.php.net/fix.php?id=35184&r=alreadyfixed
Need backtrace:              http://bugs.php.net/fix.php?id=35184&r=needtrace
Need Reproduce Script:       http://bugs.php.net/fix.php?id=35184&r=needscript
Try newer version:           http://bugs.php.net/fix.php?id=35184&r=oldversion
Not developer issue:         http://bugs.php.net/fix.php?id=35184&r=support
Expected behavior:           http://bugs.php.net/fix.php?id=35184&r=notwrong
Not enough info:             
http://bugs.php.net/fix.php?id=35184&r=notenoughinfo
Submitted twice:             
http://bugs.php.net/fix.php?id=35184&r=submittedtwice
register_globals:            http://bugs.php.net/fix.php?id=35184&r=globals
PHP 3 support discontinued:  http://bugs.php.net/fix.php?id=35184&r=php3
Daylight Savings:            http://bugs.php.net/fix.php?id=35184&r=dst
IIS Stability:               http://bugs.php.net/fix.php?id=35184&r=isapi
Install GNU Sed:             http://bugs.php.net/fix.php?id=35184&r=gnused
Floating point limitations:  http://bugs.php.net/fix.php?id=35184&r=float
No Zend Extensions:          http://bugs.php.net/fix.php?id=35184&r=nozend
MySQL Configuration Error:   http://bugs.php.net/fix.php?id=35184&r=mysqlcfg

Reply via email to