PHP注意事项
尽量静态化
如果函数可以静态化,就尽量静态化
区别主要体现是内存的处理上:
静态方法在程序开始的时候分配内存,而实例方法在实例化的时候才会分配内存
静态方法可以直接调用,而实例方法要先生成实例,在通过实例调用
静态方法过多,会占用内存
echo VS print
echo的性能高于print,因为echo没有返回值,而print返回一个整型
echo 大字符串的时候需要在服务器进行对应的配置
echo 多个字符串
echo 多个字符串是采用,
代替.
来连接字符串
@ 错误屏蔽
用 @ 掩盖错误会降低脚本运行速度,特别是不要在循环中使用@
$row[‘id’] & $row[id] & $row[1]
'id'
会直接查找key为'id'
的值,而没有引号如变量、常量在解析的时候会先判断类型在取值
isset() & empty()
isset()是测试变量是否被赋值
empty()是测试变量是否为空,该变量已经赋值。如果变量没被赋值就引用是被允许的,但会有notice提示
如果变量被赋予空值 $t = "";
$t = 0;
$t = false;
,empty($t)
返回真,isset($t)
也返回真
如果要注销一个变量采用 unset($t)
$t = NULL
循环前确认最大次数
在执行for循环前确认最大字数,不要每次循环的时候都重新计算最大值
# 不要这样做
for ($i=0;$i<=count($array);$i++){
}
# 应该这样做
$len = count($array);
for ($i=0;$i<=$len;$i++){
}
不要随便复制变量
把变量复制到另一个变量会增加一倍的内存消耗
if else & switch case
switch case好于使用多个if,else if语句,并且代码更加容易阅读和维护
并不是事必面向对象
面向对象往往开销很大,每个方法和对象的调用都会消耗内存
不要把方法细分得过多
每个方法的调用都会消耗内存
尽量采用的PHP内置函数
循环内部不要声明变量,尤其是大变量:对象
销毁变量释放内存,特别是大的数组
字符串函数代替正则表达式
split比exploade快