On Mon, 2007-04-23 at 08:36 -0500, Philip Thompson wrote: > On Apr 22, 2007, at 1:29 AM, Richard Lynch wrote: > > > On Sun, April 22, 2007 12:54 am, [EMAIL PROTECTED] wrote: > >> -- or maybe it's just the PCRE extension > >> -- or quite likely I have got something wrong > >> > >> Hello members, > >> I'm hoping you could enlighten me. > >> > >> Using error_reporting = E_ALL | E_STRICT, I tested the > >> following statements: > > > > PHP interprets \\ inside of '' to turn \\ into \ > > > > It also tries to be halfway smart about mistakes with \ followed by > > some other non-special character, by just pretending you knew what you > > were doing and had \\ there to get just one \, even though you didn't. > > Not that I can deny Richard's infinite knowledge of PHP (and it > *eating* code), but is it PHP's responsibility to determine what the > user has typed is (in)correct AND try to *fix* it? Shouldn't PHP just > assume the programmer is not a complete idiot? If there's an error/ > warning/etc, throw it but don't correct it. > > My $.02. Feel free to set me straight - I'm always up for learning.
It doesn't try to "fix" the code, it is just a somewhat odd case of escaping. Singled quoted strings accept backslashes in two ways, either escaped with a backslash or without an escaping backslash. Both of the following are valid and produce the same string: echo 'Foo \ fee!'."\n"; echo 'Foo \\ fee!'."\n"; A problem in user expectation often arises when you have a backslash preceding a single quote. For instance: echo 'Foo \' fee!'."\n"; But this doesn't give you the backslash since the backslash is used to escape the quote... and so the next step is usually to try: echo 'Foo \\' fee!'."\n"; But now the backslash is escaped and not the quote so we need: echo 'Foo \\\' fee!'."\n"; Cheers, Rob. -- .------------------------------------------------------------. | InterJinn Application Framework - http://www.interjinn.com | :------------------------------------------------------------: | An application and templating framework for PHP. Boasting | | a powerful, scalable system for accessing system services | | such as forms, properties, sessions, and caches. InterJinn | | also provides an extremely flexible architecture for | | creating re-usable components quickly and easily. | `------------------------------------------------------------' -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php