0

我将变量$words(包含单词“someText”的字符串)传递给 if 语句。我正在测试变量是否包含这些词,并希望以此为基础建立任何进一步的逻辑。

奇怪的是测试false每次都返回,即使变量包含单词“someText”!

if ($words == "someText") {
  return "True " . $words;
} else {
  return "False " . $words;
}

输出值始终为:

False someText

所以测试等于false,但变量包含单词“someText”!这是为什么?


我应该补充说我正在使用return而不是echo因为我的 cms 需要它,并且我在运行上面的代码之前将值 Older 传递给 $words 变量。

4

3 回答 3

1

要测试字符串是否包含单词,您需要使用 strstr 函数:

if (strstr($words, "someText") != false) {
  return "True " . $words;
} else {
  return "False " . $words;
}

http://www.php.net/manual/en/function.strstr.php

于 2013-07-25T12:51:59.307 回答
0

使用===运算符。30 个字符限制。 http://php.net/manual/en/language.operators.comparison.php

于 2013-07-25T12:51:51.730 回答
0

也许您在输出中没有注意到的字符串中有一些额外的空格,但会导致比较失败。尝试trim($olderIsTrue)用于比较。如果这不起作用,那么出于调试目的,请尝试比较md5哈希以查看字符串是否实际上是相同的。此外,您可能想要使用===操作符,它比它稍快一些==,并且提供了严格的比较。

于 2013-07-25T12:51:55.573 回答