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快

上次更新: 12/2/2018, 1:45:44 PM