PHP's in_array unexpected result

后端 未结 2 1140
夕颜
夕颜 2021-01-27 04:25

When I execute this small piece of PHP code:

php -r \"echo(in_array(0, array(\'aaa\', \'bbb\')));\"

That echoes true...

<
相关标签:
2条回答
  • 2021-01-27 04:46

    That's because for PHP this code will return true

    0 == 'aaa'
    

    So without strict checking PHP will find your value in given array.

    0 讨论(0)
  • 2021-01-27 04:49

    Also, check out this code:

       var_dump(0 == 'aaa');
       var_dump(0 === 'aaa');
       var_dump(in_array(0, array('aaa', 'bbb')));
       var_dump(in_array(0, array('aaa', 'bbb'), true));
    

    The last version allows strict type comparison so it will work as expected, that is return false.

    0 讨论(0)
提交回复
热议问题