GreyWyvern bhuisman@greywyvern.com wrote (Fri, 22 Jan 2010 14:34:50 -0800):
The following two valid PHP snippets trip up the PHP grammar in TextMate. Mostly because of unusually nested quotes and braces:
Well, they are not only unusually nested... additionally, they are not exactly what you might call "clean code"...
Snippet #1:
<?php $str = array("Foo", "Bar"); echo "Name: {$str[($str[1]) ? 1 : 0]}"; // Should echo "Name: Bar" ?>
The text "($str[1" appears highlighted as a syntax error
Snippet #2
<?php $insert = mysql_query("INSERT INTO `catalogue` SET `model`='{$_POST["page_row{$count}_model"]}', `type`='{$_POST["page_row{$count}_type"]}', `updated`=UNIX_TIMESTAMP() ;"); ?>
Everything in the document after this snippet is treated as a string.
Hopefully these are simple grammar file fixes :)
I guess they are, but writing your PHP code in a different, cleaner and maybe even a teeny weeny bit faster code solves your problem, too:
<?php $str = array("Foo", "Bar"); echo 'Name: ' . $str[($str[1]) ? 1 : 0]; // will echo "Name: Bar"
$insert = mysql_query('INSERT INTO `catalogue` SET `model`="' . $_POST["page_row{$count}_model"] . '", `type`="' . $_POST["page_row{$count}_type"] . '", `updated`=UNIX_TIMESTAMP();'); ?>
Kind regards, Tobias Jung