I guess I can live with this. It's just a little strange that we have only 2 string types, but 3 casts..

I would also say we need to allow automatic upconversion on binary/unicode concatenation and comparison using runtime encoding. We should also restrict binary string literals to contain ASCII chars only, to avoid encoding problems. If non-ASCII chars are required they can use \u, \U, or \C escape sequences.

-Andrei

On Mar 15, 2006, at 2:48 AM, Marcus Boerger wrote:

I would prefer a slightly different approach and make is_string() return true for both native and unicode strings. This would lead to the following
layout:

is_string(): Z_TYPE_P() == IS_STRING  || Z_TYPE_P() == IS_UNICODE
(string): bypass native + unicode, convert according to unicode mode; make_printable_zval

is_binary(): Z_TYPE_P() == IS_STRING
(binary): bypass native; make_string_zval

is_unicode(): Z_TYPE_P() == IS_UNICODE
(unicode): bypass unicode: make_unicode_string

which to me makes pretty much sense. The point is that we still have
automatic conversion mostly everywhere or will get it nearly everywhere
sooner or later. So when dealing with a string variable it doesn't really
matter what kind it is and if so one has the ability to check for the
exact type.

Best regards,
 marcus

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

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

Reply via email to