当我在条件中使用true时,strpos函数无法正常工作?

时间:2017-04-13 07:43:38

标签: php

当我使用此代码时,它会显示正确的结果

    <?php
        $string = 'there is some text';
        $find = 'some';
        function iscontain($string,$find){
           $check = strpos($string, $find);
           if ($check === false) { return 0; }else{ return 1; }
        }

        if(iscontain($string,$find)){ 
            echo "true"; 
        }else{
            echo "false"; 
             }

     //output:  true

?>

但是当我将false更改为true并且还更改返回值时,如果check为true,则返回1 else 0以便逻辑正确但结果不正确

    <?php
    $string = 'there is some text';
    $find = 'some';
    function iscontain($string,$find){
       $check = strpos($string, $find);
       if ($check === true) { return 1; }else{ return 0; }
    }

    if(iscontain($string,$find)){ 
        echo "true"; 
    }else{
        echo "false"; 
    }

 //output : false

?>

为什么两种结果都不同......?感谢。

1 个答案:

答案 0 :(得分:1)

这是因为strpos 从不返回true

它可以返回false或整数。

所以在你的第二个函数else分支中总是运行返回0这被认为是假的。