Re: Progress or just 'a mess'?
| From: | Rowan Collins | Date: | Sun, 17 Sep 2017 10:53:07 +0000 |
| Subject: | Re: Progress or just 'a mess'? | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-100688@lists.php.net to get a copy of this message | ||
On 17 September 2017 09:54:54 BST, Lester Caine <lester@lsces.co.uk> wrote:
> Just what character set is PHP7
>designed
>to work with.
Focusing on the answerable part of this, PHP actually allows a very wide variety of characters in
identifiers (names of variables, classes, functions, etc).
I checked the PHP lang-spec repo expecting to find a set of Unicode classes, but it currently
mentions "U+0080-U+00FF": https://github.com/php/php-langspec/blob/master/spec/09-lexical-structure.md#names
That seems wrong to me, unless I'm looking at the wrong definition - the first part of that
range is control characters, and you can have variables called things like $🐘 (with an emoji as
the entire name).
That would definitely be the place to document the allowed characters, though, and a rigorous
definition of "case insensitive" could also be added. I was wrong, by the way, to say that
using "to case fold" rather than "to lower case" would solve the Turkish I
problem - the key for that is to define a single locale whose case folding you are using,
independent of runtime locale settings.
Regards,
--
Rowan Collins
[IMSoP]