Re: Re: What could the intention be of someone using "\0" in comparison be?
Toby Hart Dyke <[email protected]> Tue, 19 Aug 2014 15:46:12 +0100
| Newsgroups | gmane.comp.php.windows |
|---|---|
| Message-ID | <[email protected]> |
But what does "\0" mean, and where is it documented? In this context, it clearly means zero, but not false, so the intention is to check for the presence of the tested string. It seems that the backslash means to treat as a literal zero character, which then gets treated as a "true" zero value, rather than a false. I get PHP's dynamic typing, but this seems a bit tortuous, and I would always use your idiom ( !== false) whic is much more the PHP way. Toby On 8/19/2014 2:58 PM, Christoph Becker wrote: > Jacob Kruger wrote: > >> As in, while my first guess would be that they'd meant to use just the >> number 0, what would your guesstimate be relating to why someone would in >> fact use the following syntax as part of determining if a certain >> phrase/string was included in a variable's value? >> >> //start excerpt... >> if (strpos ($text, "<b>") >= "\0") >> //end excerpt >> >> ??? > Well, using "0" or 0 instead of "\0" would result in unintended > behavior. Consider strpos() returning 0, because the $needle is found > at the very beginning of $haystack. See <http://3v4l.org/0uaY6>, where > the second and third results are not desired. > > However, I prefer the following way to test that a string is contained > in another string: > > if (strpos($haystack, $needle) !== false) > -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php