PHP只是简单地使用strpos,而不是';我不能正常工作
在php中,我只想在字符串值中找到百分比,例如PHP只是简单地使用strpos,而不是';我不能正常工作,php,Php,在php中,我只想在字符串值中找到百分比,例如33%。以下代码可以正常工作: echo strpos("%", '33%') == true ? '33%' : '33' . '$'; 但当我将这个百分比放入变量时,strpos()它不能正常工作,例如: $move_money_data = '33%'; echo strpos("%", $move_money_data) == true ? $move_money_data : $move_money_dat
33%
。以下代码可以正常工作:
echo strpos("%", '33%') == true
? '33%'
: '33' . '$';
但当我将这个百分比放入变量时,strpos()
它不能正常工作,例如:
$move_money_data = '33%';
echo strpos("%", $move_money_data) == true
? $move_money_data
: $move_money_data . '$';
我认为代码是正确的,但我不知道为什么当我将其放入变量时,结果是不正确的。strpos中的顺序错误
$move_money_data = '33';
echo strpos($move_money_data, '%' ) === false ? ($move_money_data . '$') : $move_money_data;
//编辑
来自php.net
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
我不明白你的代码和echo strpos($move\u money\u data,“%”)之间有什么区别$move_money_data:($move_money_data.'$)代码>如果未找到STRPO,则STRPO将返回false。它从不返回true only int。因此您应该避免检查它是否为true谢谢,我理解需要注意的是strps()从不返回true,因此将其与true进行比较是一种不好的做法。它要么返回false,要么返回一个整数,表示字符串在haystack中的位置。因此,您应该使用
!==false
而不是==true
对其进行严格比较,否则不为false,否则,当它返回0时,将等于false,而不是true。