1:如果一个方法能被定义成静态的static ,那么定义成静态的速度可快25%
2: echo 的效率高于print,因为echo没有返回值
3:在循环之前设置最大的次数,而不是在循环之中
4:销毁变量去释放内存,特别是大的数组
unset() 只能销毁超过256个字节的变量内存,否则空间是不被释放的
结论一、unset()函数只能在变量值占用内存空间超过256字节时才会释放内存空间。
结论二、只有当指向该变量的所有变量(如引用变量)都被销毁后,才会释放内存。
5:避免使用__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload 等魔术方法
6: 避免require_once()比较耗资源
7:在include,或者是require中尽量使用绝对路径,减少分析时间
8:如果你需要得到脚本的执行时间那么用$_SERVER['REQUEST_TIME']要优于time();
9: 用@掩盖错误会降低运行速度
10:养成对数组健加引号的习惯,这样速度会快7倍如:$_row['id']与$_row[id];
11: 错误信息很有用
12:在循环里别用函数,如count()在外面先计算
13:在方法里面建立局部变量速度快
14:全局变量几乎要比局部变量慢2倍
15:对象属性要双局部变量慢3倍
16:初始化的局部变量要比未定义的局部变量快9-10倍
17:子类的方法性能优于基类方法
18:只调用一个参数并且函数体为空的函数运行花费的时间等于7-8次$localvar++运算,而一个类似的方法(类里的函数)运行等于大约15次$localvar++运算;
19:当用echo 输出字符串时用逗号代替点运行快些
20:在apache服务器里一个php脚本页面比相应的HTML静态页面生成至少要多花2-10倍的时间,建议多用些静态
HTML页面和少量的脚步;
21:除非你的安装了缓存,不然你的php脚本每次被访问都需要被重编译。建议安装个php缓存程序,这样通过去除一些重复的编译来很明显的提高你20-100%的性能;
22:建议用memcached,高性能的分布式内存对象缓存
系统,提高动态
网络应用程序性能,减轻数据库的负担;
23:使用long2ip()或者是ip2long()函数将IP地址转换成整型存入数据库,能降低25%的存储空间,同时也可以很容易对IP进行排序和快速查找
24:考虑使用mysql_*的改良函数mysqli_*;
25: 尽量优先使用三元运算符(a?a:b;)
26: 注意使用PEAR资源库
27:使用error_reporting(0)函数来预防潜在的敏感信息显示给用户。理想的错误报告应该被完全禁用在php.ini文件里。可是如果你在用一个共享的虚拟主机,php.ini你不能修改,那么你最好添加error_reporting(0)函数,放在每个脚本文件的第一行(或用 require_once()来加载)这能有效的保护敏
感的SQL查询和路径在出错时不被显示;
28:使用gzcompress()和gzuncompress()对容量大的字符串进行压缩和解压再存进和取出数据库时,这种内置函数使用gzip算法能
压缩到90%;
29: 接受函数参数的函数func_get_args();返回的是一个参数组成的数组
30:使用glob查找文件如 glob('*.php') glob('*.{php,txt}') glob('../images/a*.jpg')
31: 如果你想查看文件的完整路径那么可以用realpath();
32: 魔术常量 __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __METHOD__ __NAMESPACE__
33: 在
sql语句中可以添加限制条件:left(text,20)只取出text文本的前20个字
34:可以使用LIMIT fromRecord,recordNum来作为分页使用,
35: 两个表的连接可以是:table1 join table2 using x(x为两个表的公共字段) 或者是 table1 join table2 on table1.x=table2.x
36: 在
mysql插入语句中如果是自增字段要用NULL代替
37:php中文乱码
问题 mysql_query("set names gb2312");或者使用icon('GBK','UTF8','string')函数;
38:使用迭代,线性,增量式的敏捷开