Hi:
first of all, yes , you are right about the reverse order thing:
and then, they are not equal:
<?php
echo "strncmp:\n";
var_dump(strncmp("laruence", "nce", -10));
var_dump(strncmp("ecneural", "ecn", 10));
var_dump(strncmp("ecneural", "ecn", 3));
var_dump(strncmp("laruence", "nce", -3));
?>
will output:
strncmp:
int(5)
int(5)
int(0)
int(0)
thanks
2011/7/29 Ángel González <[email protected]>:
> Laruence wrote:
>>
>> Hi:
>>
>> strn(case)cmp dosen't support a negative length as its third
>> paramter, while substr dose.
>
>> here is the rfc: https://wiki.php.net/rfc/strncmpnegativelen
>>
>> any question? plz worte me back.
>>
>> thanks
>
> What do you exactly mean by "in the reverse order" in
>>
>> if the abs of the negative length is greater than any strlen of the first
>> two parameters, then strn(case)cmp will work as strncmp in the reverse order
>> with the abs value:
>
> Looking at
>>
>> var_dump <http://www.php.net/var_dump>(strncmp
>> <http://www.php.net/strncmp>("prefix_num", "num", -10));
>> //outpu: int(7)
>
> it seems to mean that it would be equivalent to
>>
>> var_dump(strncmp("mun_xiferp", "mun", 10));
>
> However, if I'm reading the patch correctly, it would
> be taking the smaller string. Ie. it would be equivalent
> to
>
>> var_dump <http://www.php.net/var_dump>(strncmp
>> <http://www.php.net/strncmp>("prefix_num", "num", -3));
>
> Seems an implementation bug.
>
>
--
Laruence Xinchen Hui
http://www.laruence.com/
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php