Re: [RFC] Binary String Comparison

From: Date: Mon, 18 Aug 2014 15:30:56 +0000
Subject: Re: [RFC] Binary String Comparison
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-76660@lists.php.net to get a copy of this message
On Mon, 2014-08-18 at 23:09 +0800, Tjerk Meesters wrote: > > On 18 Aug, 2014, at 10:47 pm, Johannes Schlüter <johannes@schlueters.de> wrote: > > > >> On Mon, 2014-08-18 at 14:44 +0200, Marc Bennewitz wrote: > >> The question isn't "What's wrong with ===, strcmp()?" but > >> "What's wrong > >> with ==, <, >?". > >> > >> We have a standard way to compare two operands but currently we do some > >> magic things to solve something that don't need to be solved. > > > > Still it is a key property of the language which we can't simply change. > > Also mind this: All input data are strings and some databases also > > return data as string. So code like > > > > if ($_GET['id'] > 0) > > or > > if ($db->fetchRow()[0] == 12) > > > > which is common will break. > > Those two cases will actually not be affected, it's strictly string<=>string > comparisons that's being discussed here. Meaning that simple code you find everywhere, in every second tutorial foreach ($db->query("SELECT id, title FROM entries") as $row) { echo "<tr><td"; if ($row[0] == $_GET['highlight_id']) { echo " background='#ff0000'"; } echo ">".htmlentities($row[1])."</td></tr>"; } will suddenly fail. How wonderful! (irony) johannes ps. yes, the example might be done nicer and better, it still represents a common pattern.

« previous php.internals (#76660) next »