Maison > développement back-end > tutoriel php > php小白容易出现的 strpos 逻辑错误

php小白容易出现的 strpos 逻辑错误

WBOY
Libérer: 2016-06-23 13:09:45
original
960 Les gens l'ont consulté

  • 先来看strpos的用法:


  •     (PHP 4, PHP 5, PHP 7)

        strpos ― 查找字符串首次出现的位置

        mixed strpos    ( string $haystack   , mixed $needle   [, int $offset = 0  ] )

        返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。

        如果没找到 needle,将返回 FALSE。(请注意这种情况下的返回值)


    2. 实例说明(产生问题的错误代码)

        

    <?php    $str = 'this is phper !';        if(strpos($str, 't')){        echo 't 存在';    }else{        echo 't 不存在';    }?>
    Copier après la connexion

    新手容易犯的就是对于if的真值判断,由于该函数在没有找到对应字符的情况下,返回值为false,所以就会出现这种判断来处理找到和没找到的情况。由这个例子的结果可以看出,字符‘t’其实是存在的,而且也被找到了,并且返回了该字符的位置值,即0,因为0为假值,程序就会执行else中代码,导致程序运行结果与预期结果不一致,从而产生了所谓的逻辑错误。


    3. 正确代码(解决方法)

    <?php    $str = 'this is phper !';        if(false !== strpos($str, 't')){        echo 't 存在';    }else{        echo 't 不存在';    }?>
    Copier après la connexion


    source:php.cn
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal