主要内容
编码的四项原则
编码习惯
变量命名注意事项
注:如果return的变量没有初始化,且数据查询为空时,会产生一个Notice错误;
注:数组里的索引如果没加单引号,php引擎会先去常量里找,再到数据里找,比较浪费资源;
注:防止比较符==,被错写成赋值符=;
注:php官方也建议纯php代码里不要结束标记,如果有结束标记,在其它代码引用该文件时,结束标记后面的空格或其它输入,有可能会影响到其它代码,而且不好排错;
注:以上代码为用Php的内置函数来验证邮件地址,及返回文件的扩展名;
php语法糖
注:echo的内容里,用连接符号时,会产生一个额外连接操作,所以效率较低;
注:$i+=1是中会用到一条opcode,而$i=$i+1会占用额外的临时空间,且会执行两条opcode;
注:php的语言结构是不能当成可变函数来使用的,例如$str = 'trim'; echo $str(' pika qiu ');,该行代码是可以正确执行的,但$e = 'echo';$e 'pikaqiu'; ,这行代码是报语法错误的,这种方法也常用来确认是函数还是语言结构; 另外,语言结构的效率要高于函数;
注:如上图,例如将'iao' 替换成'obc'时,strtr中会循环一次,而str_replace会循环三次;
注:yield协程可以节省运行内存;
注:位运算是效率最高的,但位运算只适用于2的n次方相关的运算;
注:该运算符是Php7.0开始支持的,如上图代码,使用??后,就算$_GET['username']没有这个变量的存在,也不会报notice的错误;
上图中比较运算符的代码等同下面的这个:
php代码优化
php重点新特性
php编码规范
https://github.com/PizzaLiu/PHP-FIG
php坑人小题
注:输入结果为1和6,,||运算符的优先级比赋值运算符高,所以该代码等同于$a = (5 || $b =7),此时$a = true,自增和自减对布尔类型的变量是无效的,所以$a一直是true;
注:上面代码输出结果为1,函数里面的$count为静态变量static $count;
注:count(null)为0,count(false)为1,因此输出结果为2;
注:输出结果为false,计算机表达浮点数时,都是用的近似值;
总结