六:尽量避免php报错
在很多时候,可能大家为了方便,把warning和notice的这些不会影响php执行的错误直接屏蔽,不去管它,
但是,只要发生了报错,在php底层,都是会走php异常流程的(各种底层的错误处理),性能会大大降低,
所以,多使用isset,is_object,is_array等一系列变量判断函数,尽量避免出现错误
性能测试:
七:及时unset
当大数组处理完毕时,及时的unset回收内存
八:底层做好访问限制
该经验属于业务层面,当某个页面访问会造成大量资源消耗时,尽量的限制访问频率,以免被熊孩子多线程爬取页面把页面爬崩,
例如:限制同一秒时间只能访问该页面5次,超过则限制访问,直到下一秒才可继续访问
九:使用php内置常量代替内置函数
php在启动时,有赋值很多的系统常量,例如PHP_OS,PHP_VERSION等等,可以使用get_defined_constants(true)函数获取所有常量
使用PHP_VERSION代替phpversion()函数
使用PHP_OS代替php_uname('s')函数
以及最常见的使用$_SERVER['REQUEST_TIME']代替time();
测试如下:
备注:发现5.4的常量比函数慢,果断换成了5.6,可自行尝试
十:将能使用到的模型,变量等,定义在最上方,便于阅读
例如:
<?php $user_model = M('User'); $log_model = M('Log'); $user\_info = $user\_model->getInfo(); $agent\_info = $user\_model->getAgentInfo($user_info\['pid'\]); $log_model->insertLog(); //巴拉巴拉巴拉
这个只是个人认为的好习惯,便于阅读,这样写的话,看前2行,就知道这个地方会用到哪几个模型,可以大致猜到该段代码的大致逻辑了
十一:尽量使用软删除
设计表的时候,建议所有表都增加几个字段(status字段.add_time(新增时间),update_time(更新状态时间)),用于标识该条数据状态(正常1,已删除2等等)
当需要删除该条记录时,只将status置为已删除状态,而不是真正的去删除它

