-2

阅读后如何检查字符串是否包含 PHP 中的特定单词?以及有关http://php.net/manual/en/function.strpos.phpstrpos()的文档,我尝试使用第一个链接的替代方法,而不是,我使用!==>= 0

$a = "Hello";
$b = "a";
if(strpos($a, $b) >= 0) {
  echo 'string found';
} else {
  echo 'string not found';
}

打印'string found'而不是'string not found'$b显然不在$a,所以strpos()应该返回false,因此应该进入else,这是怎么回事?

4

3 回答 3

2

在这种情况下,strpos 确实返回了 false。但是,除 0 以外的任何值在 php 中都被视为 true,包括否定值,即0被视为 false。所以,

if(strpos($a, $b) >= 0)

被评估为

if(false >= 0)

接着

if(0 >= 0)

这是真的

你应该!== false改用,所以if(strpos($a, $b) !== false)

于 2012-11-23T08:11:37.827 回答
1

请阅读手册:php.net/manual/en/function.strpos.php

你会注意到如果 $b 不在 $a 中,strpos 将返回 false。您将需要以这种方式检查它:

<?php
$a = "Hello";
$b = "a";
if(strpos($a, $b) !== false) {
  echo 'string found';
} else {
  echo 'string not found';
}
于 2012-11-23T08:17:37.130 回答
0
if(strpos($a, $b) >= 0) 
strpos($a, $b) returns false
if(false >= 0) is true.

这里我们需要检查类型。

于 2012-11-23T08:27:25.357 回答