Php 针对每个strpos问题。在另一个字符串中查找字符串
我正在努力让这个脚本正常工作 其思想是,如果输入字符串Php 针对每个strpos问题。在另一个字符串中查找字符串,php,arrays,foreach,substr,strpos,Php,Arrays,Foreach,Substr,Strpos,我正在努力让这个脚本正常工作 其思想是,如果输入字符串($query)不是以'/t'开头,并且包含一个$trigger字,则设置$error 我不能让这个工作,我不知道为什么 <?php $error = false; $triggers = array('sell', 'buy', 'trade', 'trading'); $query = 'buying stuff'; if (!empty($query)) { if (sub
($query)
不是以'/t'
开头,并且包含一个$trigger
字,则设置$error
我不能让这个工作,我不知道为什么
<?php
$error = false;
$triggers = array('sell', 'buy', 'trade', 'trading');
$query = 'buying stuff';
if (!empty($query)) {
if (substr($query, 0, 2) != '/t') {
foreach ($triggers as $trigger) {
if (strpos($query, $trigger)) {
$error = true;
}
}
}
}
if ($error) {
echo "fail";
}
else {
echo "pass";
}
?>
这应该触发错误,但似乎不是。我做错了什么?如果函数
strpos
找不到它返回的字符串false
。还请注意,如果在最开始处找到搜索字符串,则返回0
改变
if (strpos($query, $trigger)) {
到
请使用“break
”关键字,并进行适当的检查
希望有帮助。将此更改为
if (strpos($query, $trigger) !==false ) {
检查工作原理这里有一个问题:
if (strpos($query, $trigger)) {
如果在索引0处找到字符串,则其计算结果为0,这将导致if语句为false
所以使用
(strpos($query,$trigger)!==false)
什么的双引号?这不是一个标签,双引号或单引号没有任何区别。对不起,伙计们没有看到的性质slash@imoda我还会在$error=true之后添加一个中断
代码>以保护一些不必要的迭代。
if (strpos($query, $trigger) !==false ) {
if (strpos($query, $trigger)) {