php - 为什么 strpos 第一次工作,但不是第二次?
问题描述
我正在使用 strpos 两个计时器。在第一个 if/else 中它运行良好,但在第二个中它不起作用。这是我的代码:
if (strpos($word, "mono") == true) {
$type = "Monobloc";
} else {
$type = "Articulated";
}
if ($word, "galva") == true) {
$coating = "Galvanized Rod";
} elseif (strpos($word, "epoxi") == true) {
$coating = "EPOXI 100%";
} elseif ($word, "electro") == true) {
$coating = "Electrozinced";
}
示例:如果变量 word 的值为“galva-mono”,$type 应为“Monobloc”,$coating 应为“Galvanized Rod”。问题是它很好地分配了 $type 但在涂层中它没有进入 if 子句。
解决方案
如官方文档中所述:
警告
此函数可能返回布尔值 FALSE,但也可能返回计算结果为 FALSE 的非布尔值。请阅读有关布尔值的部分以获取更多信息。使用 === 运算符测试此函数的返回值。
您正在使用== true
而不是检查结果!== false
。
所以,试试这个代码:
if (strpos($word, "mono") !== false) {
$type = "Monobloc";
} else {
$type = "Articulated";
}
if (strpos($word, "galva") !== false) {
$coating = "Galvanized Rod";
} elseif (strpos($word, "epoxi") !== false) {
$coating = "EPOXI 100%";
} elseif (strpos($word, "electro") !== false) {
$coating = "Electrozinced";
}
推荐阅读
- javascript - 云消息推送通知单击操作
- python - 如何计算学生在 Pandas 中某个科目中获胜的次数
- ignite - 使用自定义缓存模板时无法通过关联键查询缓存
- mysql - 添加触发器时,表对数据库是未知的
- opencv - 使用python中的关键点进行复制移动伪造检测
- wordpress - 如何在 WordPress 中添加自定义帖子类型的搜索功能
- javascript - 使用对象文字并使用 lodash 绑定所有方法是一种好习惯吗?
- database - SQL删除日期早于x天的所有行
- visual-studio - Visual Studio 2017 外部 Web 工具设置存储在哪里?
- excel - 如何将一列与包含一些空白单元格的列匹配?