问题来自here(页面上最后一个PHP程序)的一段代码中的声明声明:
if (stristr($q, substr($name,0,$len))) {...}
但是根据manual,stristr()
的返回类型是字符串。它返回一个字符串,而不是bool,那么我们如何在if语句中使用它?
答案 0 :(得分:3)
if
语句中的代码)评估为布尔表达式:
if (123)
echo '123 is true';
这将回应文本,因为当涉及到整数时,除了0之外的所有内容都是真的(或者因为它也是已知的)。 您可以查看官方文档here,详细了解哪些类型/值评估为true,哪些值为false。
当然,在strstr
和stristr
的情况下,当没有找到子字符串时,该函数实际上将返回false
,因此返回值的类型和值检查并非罕见:
if (stristr($string, 'needle') !== false)
echo 'The needle was found';
答案 1 :(得分:1)
从您发布的链接
返回值
返回匹配的子字符串。如果未找到needle,则返回FALSE。
当它返回一个字符串时,PHP在if语句中使用时认为非空字符串是真实的