strpos问题0 == false?

Dre*_*ave 3 php

我正在使用strpos在另一个字符串中找到字符串的位置.我首先检查那里是否找到了字符串.这是我的路线:

if (strpos($grafik['data'],$ss1)<>false && strpos($grafik['data'],$ss2)<>false && strpos($grafik['data'],$ss1) < strpos($grafik['data'],$ss2))
Run Code Online (Sandbox Code Playgroud)

我检查两个字符串是否都包含在内,然后我希望第一个字符串放在第二个字符串之前.在php手册中,它表示当找不到字符串时strpos返回false.但是如果我的字符串从零开始(strpos从开始就返回0),它就像是这个语句

strpos($grafik['data'],$ss1)<>false
Run Code Online (Sandbox Code Playgroud)

是假的.莫名其妙0 ==假?当strpos返回0时,如何使语句成立?

Lek*_*eyn 17

来自http://www.php.net/manual/en/function.strpos.php:

警告

此函数可能返回布尔值FALSE,但也可能返回非布尔值,该值的计算结果为FALSE,例如0或"".有关更多信息,请阅读有关布尔值的部分.使用===运算符测试此函数的返回值.

你必须使用===运算符而不是==.

在您的情况下<>,使用!==:而不是使用:

strpos($grafik['data'], $ss1) !== false
Run Code Online (Sandbox Code Playgroud)

如果$ss1找到,则返回TRUE$grafik['data']


pin*_*aki 5

你需要检查===.这将确保您具有完全错误而不是0.