自学了几天php 今天才知道 php中的比较跟java C#中的不同
比如 在php中 如果用一个字符串型的变量跟数值 0 进行比较 我们通常使用的是 == 那么我们会发现比较结果为 true 这就是php跟java c#的不同之一 因为PHP 是一门弱类型的语言,它对变量没有“必须先定义再使用”的强制要求,变量的类型也是根据赋值的类型来灵活变化的。这一“灵活性”看似灵活,实际上埋下了错误的隐患。虽然 $s = 'abc'; 语句定义了变量 $s 为字符串类型,但因为 if ($s==0)语句中,$s 是和数字型常量比较,所以 $s 这时被隐含的转换成了数字型变量,其值是 0,所以 $s==0 比较的结果就为真。
所以 == 只会比较它们的值
在 PHP 语言里还有一个严格比较的运算符“===”,要求比较的双方必须类型一致,把上述 if ($s==0) 语句写为 if ($s===0) 就会避免前述错误的发生