【问题标题】:am I using strpos correctly? Not getting the results我正确使用 strpos 吗?没有得到结果
【发布时间】:2015-11-23 19:22:00
【问题描述】:

我有一个 php while 循环(创建一个搜索脚本),我正在寻找匹配值以查看哪些项目应该进入搜索结果。 strpos 似乎工作得很好,直到它突然拒绝在这个特定位置正常工作......

if (strpos('a', 'a')) {
 continue;
}

不应该继续吗?毕竟,“a”确实包含“a”,但在我的脚本中,它达到了继续。

【问题讨论】:

  • 您能否按照预期的方式显示周围的代码,并且不运行“继续”..所以我们需要查看周围的环境。
  • 返回the position,即0=false。只需使用if(strpos('a', 'a') !== false)
  • 你的问题解决了吗?如果答案帮助您考虑将其视为已接受,如果您不知道如何阅读此stackoverflow.com/tour

标签: php string if-statement strpos


【解决方案1】:

一切正常,只需尝试以下代码:

<?php

$value = strpos('qa', 'a');
var_dump($value);

if($value) {
 echo "inside\n<br>";
}

输出:

int(1)

里面

<?php
$value = strpos('aq', 'a');
var_dump($value);

if($value) {
 echo "inside\n<br>";
}

输出:

int(0)

在第二个代码中,$value 在类型转换中被评估为false (boolean),因为a 的位置是0,并且当您在if() 内评估0 时,值将转换为@987654331 @。

你应该使用这个代码:

if(strpos('a', 'a') === 0) {
 echo "inside\n<br>";
}

输出:

里面

您可以在以下位置阅读更多信息:

http://php.net/strpos

http://php.net/manual/en/language.operators.comparison.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-16
    相关资源
    最近更新 更多