Php 为什么strpos第一次有效,而第二次无效?
我使用的是strpos双定时器。在第一种情况下,if/else很有效,但在第二种情况下,它不起作用。这是我的代码:Php 为什么strpos第一次有效,而第二次无效?,php,strpos,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, "epo
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";
}
例如:
如果变量字的值为“galva mono”$类型应为“Monobloc”,而$涂层应为“镀锌棒”。问题是它很好地分配了$类型,但在涂层中,它没有在if条款中输入。如以下所述:
警告
此函数可能返回布尔值FALSE,但也可能返回
计算结果为FALSE的非布尔值。请阅读关于
更多信息请参见布尔值。使用===运算符测试
此函数的返回值
您正在用==true
而不是!==检查结果错误
因此,请尝试以下代码:
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";
}
如合同所述:
警告
此函数可能返回布尔值FALSE,但也可能返回
计算结果为FALSE的非布尔值。请阅读关于
更多信息请参见布尔值。使用===运算符测试
此函数的返回值
您正在用==true
而不是!==检查结果错误
因此,请尝试以下代码:
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";
}
此行应触发语法错误:
if($word,“galva”)==true){
error reporting/reading logs在这里会有所帮助。请给出$word的示例,它是否总是包含类型和涂层?此行应触发语法错误:if($word,“galva”)==true){
错误报告/读取日志在这里会有所帮助。您能举个$word的例子吗,它是否总是包含类型和涂层?