如果我有一个变量,它被赋予一个也可以是数字的字符串,如下所示:
$a = "1";
如果我想检查它是否确实等于 1,那么两者之间是否有任何功能差异
if((int)$a == 1) {
whatever();
}
和
if($a == "1") {
whatever();
}
在这里,我正在考虑 PHP,但欢迎其他语言的答案。
如果我有一个变量,它被赋予一个也可以是数字的字符串,如下所示:
$a = "1";
如果我想检查它是否确实等于 1,那么两者之间是否有任何功能差异
if((int)$a == 1) {
whatever();
}
和
if($a == "1") {
whatever();
}
在这里,我正在考虑 PHP,但欢迎其他语言的答案。
在第一种情况下,您需要转换然后比较,而在第二种情况下,您只比较值。从这个意义上说,第二种解决方案似乎更好,因为它避免了不必要的操作。第二个版本也更安全,因为它可能$a
无法转换为 int。
$a = "1"; // $a is a string
$a = 1; // $a is an integer
第一个
if((int)$a == 1) {
//int == int
whatever();
}
第二个
if($a == "1") {
//string == string
whatever();
}
但如果你这样做
$a = "1"; // $a is a string
if($a == 1) {
//string & int
//here $a will be automatically cast into int by php
whatever();
}
因为您的问题还询问其他语言,您可能正在寻找更一般的信息,在这种情况下不要忘记三等号。这真的真的等于某事。
$a = "1";
if ($a===1) {
// never gonna happen
}
$b = 1;
if ($b === 1) {
// yep you're a number and you're equal to 1
}