Re: PHP6 artifact - binary strings

From: Date: Sun, 08 Feb 2015 21:09:43 +0000
Subject: Re: PHP6 artifact - binary strings
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-82174@lists.php.net to get a copy of this message
Hi, > On 8 Feb 2015, at 20:10, Marc Bennewitz <dev@mabe.berlin> wrote: > > Since PHP-5.2.1 we have an artifact of PHP-6 in the engine means we can define binary strings > but such definitions haven't any effect. Yes. That’s because PHP 6 was going to have Unicode strings by default, alongside binary strings (to PHP 5 and 7, just “strings”). These “binary strings” are just strings. > So what we can define is the following: > > $str = "str"; > $bin = b"b\0i\0n"; > $str2bin = (binary)$str; > > One of the biggest issue is that currently ALL strings will be handled as ASCII-7 compatible > strings on type-juggling but they aren’t. In the rare case you need to prevent type juggling of binary data, you could wrap it in an object. > It would be very appreciated if PHP could respect such binary declaration: > > * use binary string comparison on compare a binary string to any other string > * don't convert binary strings into integers on array keys > * allow bitwise operators on binary strings without casting to integer This would break existing code which was made “PHP 6-ready”.. Also, we already support bitwise operations on strings, I don’t know what you’re on about there... -- Andrea Faulds http://ajf.me/

« previous php.internals (#82174) next »