在日常中php基础知识所遇到的奇葩的或者不容易理解的题,做一个汇总和记录。
1. "a"==0 竟然为 true,偶然发现 字符串 == 0 为真,这是因为 字符串和数字类型比较的时候,因为是 == (松散比较),会为了方便判断会把字符串转成数字类型0,如果是数字字符串 则 直接转换成对应数字类型 如 "5" 会转换成数字 5。
答: 松散比较的类型转换优先级 字符串>数字类型>布尔类型。即 "abc" ==0 转换为 0==0 ;0==false 转换为 false ==false
2. $b++ 的知识题
$b = 0;
if($b++){
echo '我是先加加'
}else{
echo '我是先判断'
};
答:因为$b++是后递增 所以先走判断 然后再++ 输出结果 我是先判断
3.$$符的用法(可变变量的用法)
$a = 'b';
$b = 7;
$$a= ?
答:这里考的是可变变量的用法,直接把变量带入就行。 $$a <==>$b 换句话说 $$a中的‘$a’变成了字符串‘b’
4. &符号的作用
$a = 1;
$b = &$a;
echo (++$b)+(++$a);
答:输出 5 在php中 & 符号表示 获取内存地址,在本题中 就表示 将$a的内存地址复制给了$b,可以认为 $a<==>$b。所以$a和$b 任何一个发生变化,另一个也会跟着发生变化。