php编程注意
1.字符编码的问题
程序代码使用utf-8码,而strlen函数是计算字符串的字节数而不是字符数?
$str = “您好hello”;
echo strlen($str);
结果:ANSI=9 而utf-8=11,utf-8中文字符编码是3个字节。要获取字符数,使用mb_strlen().
2.php的字符串可以当做数组,也可以用{}来获取
$a='12345'; dd($a{2});//输出3
3.PHP优先级的问题
$person = $who or $person = "laruence"; //实际上是等同于: $person = empty($who)? "laruence" : $who;
PHP的优先级是and,or优先级是小于=的,=的优先级是小于&&,||的,所以
$person = $who or $person = "laruence";其实是($person = $who)or ($person = "laruence")
$arr = array(1=>1,3=>3); $i = 2; $a = ’test‘ . isset($arr[$i]) ? $arr[$i] : $i;
$a的输出其实是会PHP报错的
也是优先级的问题,PHP的字符串连接符.的优先级大于三元运算符,san'y三元运算符的优先级是大于赋值运算符的
所以最先执行的是’test‘ . isset($arr[$i])--》‘test0'-->转换为bool为true,执行$arr[$i]。
越努力越幸运