RE: [PHP-DEV] Adding a more logical string slicing function to PHP

From: Date: Wed, 30 Mar 2011 14:43:54 +0000
Subject: RE: [PHP-DEV] Adding a more logical string slicing function to PHP
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-51752@lists.php.net to get a copy of this message
On Wed Mar 30 09:05 AM, Hannes Landeholm wrote: > > var_dump(\substr("foo", 5, 6) == "", (string) false, false == > ""); > > Welcome to PHP. To be honest this criticism pretty much falls in the > "from person that comes from another language X and is annoyed that > every little detail isn't exactly the same"-category. Just make your > own substr() function that uses the behavior you expect if you don't > like the native version. Although that's bad practice - the best > solution is to get used to it. And if you have an urge to write about > your experience with a new language I suggest you do it in a blog > instead of posting it in the internals mailing list... I agree with what you're saying but I think you're being a little harsh, experience with a new language should be something that matters to internals. Back to Dan, you're hitting type conversion so not sure I understand "you always have to deal with this FALSE case": var_dump(substr('', -1) == '0'); // TRUE var_dump(substr('', -1) === '0'); // FALSE Equally to Dan, it doesn't seem like a great way to start the conversation by saying the "interface is inconsistent and confusing". There's a perception issue here since you're already used to using language X,Y,Z. That said the patch seems to add value to php, why not add str_slice() if it can solve consistency issues for some users? str_slice likely could be a faster alternative to substr() in userland parsers. Also I've seen plenty of bugs caused by type conversion & substr() in userland

« previous php.internals (#51752) next »