Hi guys,
I'm really interested to read the IRC conversation logs.
Does anyone recorded it?
Regards,
On Sun, Oct 26, 2008 at 1:29 PM, Greg Beaver <[EMAIL PROTECTED]> wrote:
> Stan Vassilev | FM wrote:
>>
>> Hi,
>>
>> I want to thank you all for opting for the technically sound, clear and
>> performant solution. Of course some users will never understand the
>> precise reasons :: was avoided, but it's something we'll have to live
>> with, given some past design choices in PHP.
>>
>> Regarding "foo\tbar" turning into "foo[tab]bar", I just wanted to throw
>> it out there, although I don't think it's a great idea. We have only few
>> escape combinations in string literals which can also be in a valid
>> identifier:
>>
>> \t \n \r
>>
>> There are also some which aren't a problem since they can't be in a
>> valid identifier:
>>
>> \x.. \0 \\ \$ \' \" \{..} etc.
>>
>> So the problem is with exactly three combos: \t, \n and \r. In the few
>> places PHP takes class/function identifiers as strings, TAB, CR and LF
>> could be interpolated back into the two characters they express, since
>> TAB, CR and LF aren't valid on their own in identifiers, so ambiguity is
>> not possible.
>
> there are other escape sequences (such as \f)
>
>> Those places of the top of my mind are: new $class(), $class::property,
>> call_user_*(), _autoload, and all other places accepting callbacks.
>>
>> This would mean both of those will work correctly: "foo\\tbar" and
>> "foo\tbar" when used as an identifier.
>>
>> Think of it as a plan B in case people cause a big fuss about it (which
>> I think they won't: think about escaping of windows file paths and
>> escaping in regex pattern, we're doing just fine there).
>
> I don't see this as a real problem, simply because when one makes a
> mistake, it is obvious. A fatal error is displayed with the offending
> class name/function name/constant name (yes, namespace constants die
> with fatal error if they are not found, unlike traditional un-namespaced
> constants). Although it may be possible to magically replace escaped
> characters, this could have unintended side effects. For instance, if a
> user is instantiating a class based on external input, it would
> introduce a new way to have unexpected behavior, as newlines would be
> converted to \n or \r.
>
> As I stated in my last message on the subject, the best approach for any
> string is to always use single quotes. You're far less likely to run
> into trouble. This has been true for years, and is not changed by
> namespaces or any other addition in 5.3
>
> Shall we let this one go?
>
> Greg
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
Guilherme Blanco - Web Developer
CBC - Certified Bindows Consultant
Cell Phone: +55 (16) 9166-6902
MSN: [EMAIL PROTECTED]
URL: http://blog.bisna.com
Rio de Janeiro - RJ/Brazil
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php