Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php strpos不适用于特定字符串_Php_Strpos - Fatal编程技术网

Php strpos不适用于特定字符串

Php strpos不适用于特定字符串,php,strpos,Php,Strpos,我试图使用strpos在另一个字符串中查找一个字符串,但由于某种原因,它对某个字符串不起作用,即使它对另一个字符串起作用。我做错了什么 <?php if (strpos("show me how to dance", "show me")) { echo "true1"; } if (strpos("my name is name", "name")) { echo "true2"; } ?> 预期结果: strpos返回字符串中出现的索引(如果找不到,则返回false)。当这

我试图使用strpos在另一个字符串中查找一个字符串,但由于某种原因,它对某个字符串不起作用,即使它对另一个字符串起作用。我做错了什么

<?php

if (strpos("show me how to dance", "show me")) {
echo "true1";
}
if (strpos("my name is name", "name")) {
echo "true2";
}

?>
预期结果:


strpos
返回字符串中出现的索引(如果找不到,则返回false)。当这个索引为0时,条件:
(strpos(“show me how to dance”,“show me”)
被计算为false(因为在PHP中:
0==false
为true)。为确保找到指针(即使在索引0处),您需要使用严格的比较:

if (strpos("show me how to dance", "show me") !== false)

不可能!您的代码显示
true2
。因为位置
0
的计算结果为
false
。true2@Dagon对不起,那是个打字错误。我是说真的。但是我希望是真的1和真的2。好的,多基,读下面的解释,哇……这有点奇怪。默认情况下不应该打开吗?@frosty:PHP不是强类型语言(结果类型转换是隐式的),有时这是一种优势,有时…@frosty不,strps不验证字符串是否包含子字符串,它返回第一次出现的索引,这是两个不同的地方tasks@Lashane那么,是否有一个函数可以验证字符串包含子字符串?@frosty我不确定php是否有函数来验证这个字符串(位置更通用),无论如何,从语义的角度来看,preg_匹配可能更好
true1true2
if (strpos("show me how to dance", "show me") !== false)