PHP 弱类型比较
php 在字符串与数字比较的时候,会把字符串转化为数字,在转化的时候会先判断,字符串是否是科学计数法。
==
if ('aaa'==0){
echo 'str';
}
字符串在转化为数字的时候 如果开始没有数字则为0;
如果有就只保留数字。
switch
switch 也是== 比较
在比较的时候,如果双方有一个是数字,则都转为数字。
- 如果第一个参数 如果
case2
是一个数字则不会进入case '2.php'
但是如果是case '2'
这样就可以避免。 - 如果是第五参数,在比较的时候会判定为科学计数法进行一个转化 因为
0e123
为 0 (这里并不能确定是转化为数字还是字符)因为如果是数字 则另一方也要是数字,那么按照0==字符串
的特性 是为true
但是实验并没有得出,那么应该就是字符串0,但是0e123 == '-0'
所以不太清除这里转化的机制。
function one()
{
$string = '2.php';
// $string = 0;
// $string = -1;
// $string = 'aaa';
// $string = '0e123';
// $string = '1a48';
// $string = '7b';
switch ($string) {
case '0':
return 0;
break;
case