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]。



posted @ 2016-11-12 16:27  tianye_guazi  阅读(121)  评论(0编辑  收藏  举报