我将变量$words
(包含单词“someText”的字符串)传递给if语句。我正在测试变量是否包含这些单词,并希望以此为基础的任何进一步逻辑。
奇怪的是,每次测试都返回false
,即使变量包含单词“someText”!
if ($words == "someText") {
return "True " . $words;
} else {
return "False " . $words;
}
输出值始终为:
False someText
所以测试等于false
,但变量包含单词“someText”!那是为什么?
我应该补充说我正在使用return
而不是echo
因为我的cms需要这个,并且我在运行上面的代码之前将值Older传递给$ words变量的
答案 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;
}