如果我有一个变量,它给出一个也可以是数字的字符串,如下所示:
$a = "1";
如果我想检查它是否确实等于1,那么
之间是否存在任何功能差异if((int)$a == 1) {
whatever();
}
和
if($a == "1") {
whatever();
}
我在考虑使用PHP,但欢迎使用其他语言的答案。
答案 0 :(得分:0)
在第一种情况下,您需要转换然后进行比较,而在第二种情况下,您只需比较值。从这个意义上讲,第二种解决方案看起来更好,因为它避免了不必要另外第二个版本更安全,因为$a
可能无法转换为int。
答案 1 :(得分:0)
$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();
}
答案 2 :(得分:0)
因为你的问题也询问其他语言你可能正在寻找更多的一般信息,在这种情况下不要忘记三等于。这真的与某事完全相同。
$a = "1";
if ($a===1) {
// never gonna happen
}
$b = 1;
if ($b === 1) {
// yep you're a number and you're equal to 1
}