Re: Re: What could the intention be of someone using "\0" in comparison be?

"Jacob Kruger" <[email protected]> Tue, 19 Aug 2014 18:15:39 +0200
Newsgroups gmane.comp.php.windows
Message-ID <2FDFBC85B9AE4D5597A8A9E28839863A@JakePC>
Well, if I use var_dump("\0") here on my windows7 64 bit machine, it spits 
out the following:
string '�' (length=1)

And, if I check out the ascii character code of that blank character here it 
returns as 65533

//that's just interpreted using my screenreader's say character code option 
on output string

Pretty much just wondering what they meant to do, and would also have 
thought it was a form of typo in that they wanted to double check if that 
variable, which must have something assigned to it included those 
characters/letters, etc.?

Stay well

Jacob Kruger
Blind Biker
Skype: BlindZA
"Roger Wilco wants to welcome you...to the space janitor's closet..."

----- Original Message ----- 
From: "Toby Hart Dyke" <[email protected]>
To: <[email protected]>
Sent: Tuesday, 19 August, 2014 4:46 PM
Subject: Re: [PHP-WIN] Re: What could the intention be of someone using "\0" 
in comparison be?


>
> 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
>
> 


-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php