为什么这个php if语句没有按预期工作?

时间:2013-07-25 12:46:33

标签: php html

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

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

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

输出值始终为:

False someText

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


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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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