当项目匹配时,PHP strpos不会返回true

时间:2018-07-06 10:21:16

标签: php

这听起来真的很简单,但我不明白为什么它不起作用。

我正在检查字符串是否与某些内容匹配,以便发送一些文本。

返回的字符串是:Delivered to UPS Access Point™ location and awaiting customer pickup.

这是我用来检查的语句

if(strpos(strtolower($step->status), "delivered to ups access point")) {

}

当前,如果我希望它为true,则if语句返回false

任何想法

3 个答案:

答案 0 :(得分:4)

您正在将strpos视为布尔值,事实并非如此。它返回字符串的位置(为0),并转换为false。

因此要与非false(未找到)或> = 0(已找到)进行比较,类型很重要。

示例:

    $data = "Delivered to UPS Access Point™ location and awaiting customer pickup.";
    if(strpos(strtolower($data), "delivered to ups access point") !== false) {
     echo 'Found!';
    }

答案 1 :(得分:1)

这应该有效

$step->status = "Delivered to UPS Access Point™ location and awaiting customer pickup.";
if(strpos(strtolower($step->status), "delivered to ups access point") !== false) {
    echo "String matches";
}
else {
    echo "String not matches";
}

答案 2 :(得分:1)

strpos是第二个参数的返回索引。在您的情况下,“交付到ups接入点”是指起点平均第0位。 0表示错误。