Php if语句发布
我有一个叫做root的变量。此变量的值为0Php if语句发布,php,Php,我有一个叫做root的变量。此变量的值为0 $root = 0; if($root == "readmore"){ $root = 1701; } 不知为什么,由于某种奇怪的原因,如果$root为0,它仍然会进入上面的if语句?我不知道它可能是什么这是因为,对于类型转换,0被认为等同于“readmore”。您要求PHP将字符串与整数进行比较,它会将任何不包含数字的字符串解释为0 如果您使用If($root==“readmore”)…,PHP将检查变量
$root = 0;
if($root == "readmore"){
$root = 1701;
}
不知为什么,由于某种奇怪的原因,如果$root为0,它仍然会进入上面的if语句?我不知道它可能是什么这是因为,对于类型转换,
0
被认为等同于“readmore”
。您要求PHP将字符串与整数进行比较,它会将任何不包含数字的字符串解释为0
如果您使用
If($root==“readmore”)…
,PHP将检查变量的类型和值。这是因为,在进行类型转换时,0
被视为等同于“readmore”
。您要求PHP将字符串与整数进行比较,它会将任何不包含数字的字符串解释为0
如果使用If($root==“readmore”)…
,PHP将检查变量的类型和值。试试看
$root = 0;
if($root === "readmore"){
$root = 1701;
}
也要检查类型。请尝试
$root = 0;
if($root === "readmore"){
$root = 1701;
}
也要检查类型。基本上,您正在进行以下比较:
if (0 == 'readmore') {
// ...
}
这意味着“readmore”将转换为整数;而“readmore”转换为整数后为0
请参见手册中关于此的内容,以及说明(引用):
如果字符串以valid开头
数字数据,这将是值
习惯于否则,该值将为0
(零)
您可能希望使用===运算符,这将阻止这种转换:
if($root === "readmore") {
// You will not enter here, if $root is 0
}
请参阅。基本上,您正在进行此比较:
if (0 == 'readmore') {
// ...
}
这意味着“readmore”将转换为整数;而“readmore”转换为整数后为0
请参见手册中关于此的内容,以及说明(引用):
如果字符串以valid开头
数字数据,这将是值
习惯于否则,该值将为0
(零)
您可能希望使用===运算符,这将阻止这种转换:
if($root === "readmore") {
// You will not enter here, if $root is 0
}
参见。参见此问题:参见此问题: