1)PHP的弱类型

2)PHP的运算符的优先级

本节紧张谈论PHP弱类型问题,优先级下一章节再进行谈论

php弱类型比较题目PHP面试常考易错题之弱类型转换 Webpack

剖析:

1)在PHP中如果数值和字符串进行比较的时候,PHP会将非数字开头的字符串转换成为整数0,如果前

面有数字值则会转化成为开头的数值进行比较,那么题上的输出为1

2)相反,如果是2a这样的字符串,那么就会返回2,再者如果为a2这种的还是会返回1

3)如果放在js里面那就不一样了。
会返回一个:var tmp = 0 =='1a'?1:2; alert(tmp); 这样会输出为2

4)运算符优先级: == > 三元运算 >赋值运算

living example two

$str1 = 'yabadabadoo';$str2 = 'yaba';if (strpos($str1,$str2)) { echo \公众\\\"大众\"大众 . $str1 . \公众\\\"大众 contains \\\"大众\"大众 . $str2 . \"大众\\\"大众\"大众;} else {echo \"大众\\\"大众\"大众 . $str1 . \"大众\\\"大众 does not contain \\\公众\"大众 . $str2 . \"大众\\\"大众\公众;}精确运行的输出结果:\"大众yabadabadoo\"大众 does not contain \"大众yaba\"大众解析:1)strpos是返回字符串str2在str1的位置,没有找到则返回false然而实际上这次返回了0而在if语句中0也被当作false,以是,我们须要对false做类型判断,精确的代码如下:$str1 = 'yabadabadoo';$str2 = 'yaba';if (strpos($str1,$str2) !== false) { echo \公众\\\"大众\公众 . $str1 . \"大众\\\公众 contains \\\"大众\公众 . $str2 . \"大众\\\公众\公众;} else {echo \"大众\\\"大众\"大众 . $str1 . \"大众\\\"大众 does not contain \\\"大众\公众 . $str2 . \公众\\\"大众\"大众;}

须要把稳的是我们利用了!==,在php 和 JS中= !相对== 更为严格须要哀求数据类型的同等。

living example three

echo 'Testing ' .1+2.'45';

考点:

PHP的弱类型和运算符的优先级以及\"大众+\"大众号在PHP中和其他措辞的不同

解析:

运算的结果步骤:

1)echo 'Testing1'+2.'45';

2)echo 2.'45';

3)echo '245';

\"大众+-.\公众三者的优先级是一样,因此程序是从左向右依次实行,进入数值打算会将字符串硬性转换为

数值,php数值打算会逼迫转化字符串,如果前面有数字就第一个为终极值 如果没有便是0