I am with Andrei on this. Ord doesn't make strict sense, but may also be
confusing when all of its functionality is taken into account.

As a function that returns an int representing the first byte of a string of
bytes it has limited value. Indexing that byte or using substring would be
more generic and accomplish pretty much the same.

There is some benefit in having ord() be available to binary for similarity,
but it can also hurt you because someone might think that if their byte data
represents utf-16, that ord will return the first 16 bit char.

Further, (I forget) does ord do a conversion from the unicode string
encoding to the runtime encoding?
Wouldn't some conversion be implied for binary data then also?
ugh.


Tex Texin
Internationalization Architect,   Yahoo! Inc.
 
 


> -----Original Message-----
> From: Dmitry Stogov [mailto:[EMAIL PROTECTED] 
> Sent: Friday, September 09, 2005 7:37 AM
> To: 'Andrei Zmievski'; 'Derick Rethans'
> Cc: 'Andi Gutmans'; 'PHP Developers Mailing List'
> Subject: RE: [PHP-DEV] ord() on binary strings
> 
> 
> I don't see any problems with ord() for binary data.
> 
> String consist from characters and ord() returns the number 
> of character. Binary string consist from bytes and ord() 
> returns value of byte.
> 
> Dmitry.
> 
> > -----Original Message-----
> > From: Andrei Zmievski [mailto:[EMAIL PROTECTED]
> > Sent: Friday, September 09, 2005 5:42 PM
> > To: Derick Rethans
> > Cc: Andi Gutmans; PHP Developers Mailing List
> > Subject: Re: [PHP-DEV] ord() on binary strings
> > 
> > 
> > My argument was that ord() semantics and docs say that it works on
> > _characters_ and this simply does not make sense for the binary  
> > strings. If we really want ord() to work on binary type, fine, but  
> > we'd better have docs that make sense then.
> > 
> > -Andrei
> > 
> > 
> > On Sep 9, 2005, at 12:09 AM, Derick Rethans wrote:
> > 
> > > On Thu, 8 Sep 2005, Andi Gutmans wrote:
> > >
> > >
> > >> Did Andrei have a reason besides the docs? Even without 
> IS_UNICODE/ 
> > >> IS_BINARY it sounds like the docs could use tuning anyway, no?
> > >>
> > >
> > > Andrei: The docs say "Return ASCII value of character", 
> > which doesn't
> > >         make sense for binary. You can use bin2hex(), bin2hex() ==
> > > ord()
> > >         for binary.
> > >
> > > (Which is not true, as it doesn't return the ordinal value, 
> > just a two 
> > > digit hex string)
> > >
> > > Derick: anyway, ord() always worked on string like this, seems
> > >         strange to break it (and yes, it already did)
> > > Andrei: you had binary strings before?
> > > Derick: normal strings of course, but it came from a file, so it
> > > turned
> > >         binary and ord() started failing
> > >
> > > Andrei: Then you should fix your code and convert that binary to
> > >         something sensible if you are reading text
> > > Derick: it's not text, it's binary
> > > Andrei: if it's binary, why do you need to know the ascii value
> > > Derick: Because I'm converting a binary file to a C file (for the
> > >         timezone database)
> > >
> > > Then he continues saying that it's Ok to break BC in unicode mode.
> > >
> > > regards,
> > > Derick
> > >
> > > --
> > > Derick Rethans
> > > http://derickrethans.nl | http://ez.no | http://xdebug.org
> > >
> > > --
> > > PHP Internals - PHP Runtime Development Mailing List
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> > 
> > -- 
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> > 
> > 
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 
> 

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to