如果变量前面包含S
?
我的代码示例:
$a = "S0225";
$b = "700S4";
if(strpos($a, 'S') !== FALSE) {
echo "PASS";
//for this It will pass
}
if(strpos($b, 'S') !== FALSE) {
echo "PASS";
//for this, why this pass too, whereas I want just value of variable start front S
}
答案 0 :(得分:3)
strpos 返回针存在于相对于haystack字符串开头的位置(与offset无关)。另请注意,字符串位置从0开始,而不是1.
如果未找到针,则返回FALSE。
因此,为了确保S
位于字符串的开头,这意味着{0}应该位于0位。
S
来自文档的警告:
此函数可能返回布尔值FALSE,但也可能返回a 非布尔值,其值为FALSE。请阅读有关的部分 布尔值获取更多信息。使用===运算符进行测试 返回此函数的值。
答案 1 :(得分:3)
您也可以将substr()
用于此目的
if(substr($string_goes_here, 0, 1) === 'S') {
//Pass
}
答案 2 :(得分:1)
这样检查..
if(strpos($b, 'S')==0) //<---- Check for position instead of boolean
{
echo $b; // Will not print..
}
答案 3 :(得分:1)
尝试
if(strpos($b, 'S') == 0) {
echo "PASS";
}
您也可以尝试使用substr
if (substr($b, 0, 1) == 'S') {
echo "PASS";
}