> -----Original Message----- > From: Miroslav Figlar [mailto:[EMAIL PROTECTED]] > Sent: 30 May 2002 13:05 > To: [EMAIL PROTECTED] > Subject: [PHP] nested if parse error > > > could somebody explain me please what is wrong with this > piece of code? > <? > if (1): > if (1) echo "hello"; > else: > endif; > ?>
Well, first off you've broken the golden rule, which is: Don't mix the :-type syntax with the {}-type or completely bare syntaxes. In more detail: on reaching the "else", PHP matches it with the nearest preceding if; this is the "If (1) echo ..." line, which isn't using :-type syntax, so it expects the else also not to use :-type syntax -- so the : is a parse error. Using :-type syntax, you *must* write this as: if (1): if (1): echo "hello"; endif; else: endif; > this works fine (no parse error): > <? > if (1): > else: > if (1) echo "hello"; > endif; > ?> This is because the "else" now matches the first "if (1):", which uses :-type syntax, so the "else" is expected to have a ":" after it, which it does -- so no parse error. Cheers! Mike --------------------------------------------------------------------- Mike Ford, Electronic Information Services Adviser, Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Beckett Park, LEEDS, LS6 3QS, United Kingdom Email: [EMAIL PROTECTED] Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php