Ok, well the mystery is solved. Earlier in the script, I had used HEREDOC string delimiting to output some html blocks (I feel, asthetically, that HEREDOC is more readable than escaping out to HTML then back into PHP). Somehow, and I'm not sure how, because I don't remember typing the spaces, but somehow, exactly 4 spaces got inserted after each of my heredoc delimiter tokens in my script. Well, PHP isn't, apparently, smart enough to ignore the white space after the delimiter, and decided that the entire rest of my script constituted one large HEREDOC block.

I only caught this after putting a copy of my script on my webserver with .phps extension and looking at it, and noticing that after the heredoc, all syntax highlighting stopped.

So, I guess even though HEREDOC might be more pleasing to read (imho), it has a nasty class of syntax error that is *very* hard to detect (since it is very hard to 'see' that you have whitespace after the token). Caveat coder.

Actually, I think I just figured out where the whitespace came from. My text editor has a feature, normally usefull, to do automatic indenting when you start a new line of code. I think it indented the cursor 4 spaces, and I hit 'home' and typed the delimiting token, and forgot about the whitespace at the end (normally, whitespace is ignored/collapsed by the parser).

Jeff Schmidt

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to