Tips

  1. 尽量静态化

    如果函数可以静态化,就尽量静态化。
    区别主要体现是内存的处理上,静态方法在程序开始的时候分配内存,而实例方法在实例化的时候才会分配内存。
    静态方法可以直接调用,而实例方法要先生成实例,在通过实例调用。

    静态方法过多,会占用内存

  2. echo VS print

    echo的性能高于print,因为echo没有返回值,而print返回一个整型

    echo 大字符串的时候需要在服务器进行对应的配置

  3. echo 多个字符串

    echo 多个字符串是采用,代替.来连接字符串

  4. @ 错误屏蔽

    用 @ 掩盖错误会降低脚本运行速度,特别是不要在循环中使用@。

  5. $row[‘id’] & $row[id] & $row[1]

    'id'会直接查找key为'id'd的值,而没有引号如变量、常量在解析的时候会先判断类型在取值。

  6. isset() & empty()

    isset()是测试变量是否被赋值。
    empty()是测试变量是否为空,该变量已经赋值。如果变量没被赋值就引用是被允许的,但会有notice提示。

    如果变量被赋予空值 $t = ""; $t = 0; $t = false;empty($t)返回真,isset($t)也返回真。
    如果要注销一个变量采用 unset($t) $t = NULL

  7. 循环前确认最大次数

    在执行for循环前确认最大字数,不要每次循环的时候都重新计算最大值。

    1
    2
    3
    4
    5
    6
    7
    8
    //不要这样做
    for ($i=0;$i<=count($array);$i++){
    }

    //应该这样做
    $len = count($array);
    for ($i=0;$i<=$len;$i++){
    }
  8. include() & include_once() & require() & require_once()

    功能是一致的都是加载文件,_once是在加载文件前判断该文件是否已经被加载过了,避免重复加载。
    主要区别

    • 错误处理机制
      • require() 如果不存在文件时,会抛出fatal error脚本终止运行。
      • include() 如果不存在文件时,会抛出warning但脚本继续运行。
    • 性能
      • require() 文件只处理一次 (实际上,文件内容替换了require()语句)。
      • include() 执行时文件每次都要进行读取和评估。
        如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。
    • 使用弹性

      • require() 通常放在脚本的最前面,脚本在执行前,会先载入所指定引入的文件,使它变成脚本的一部份。
      • include() 通常放在流程控制的处理区段中。脚本在读到文件时,才将它载进来。这种方式,可以把执行时的流程简单化。

      包含文件时使用完整路径,减少解析路径所需的时间。

  9. ‘ ‘ & “ “

    PHP 允许使用单引号和双引号来封装字符串变量。
    " " 先读取字符串内容,再查找其中的变量,并进行赋值。

  10. 不要随便复制变量

    把变量复制到另一个变量会增加一倍的内存消耗。

  11. if else & switch case

    switch case好于使用多个if,else if语句,并且代码更加容易阅读和维护。

  12. 并不是事必面向对象

    面向对象往往开销很大,每个方法和对象的调用都会消耗内存。

  13. 不要把方法细分得过多

    每个方法的调用都会消耗内存。

  14. 尽量采用的PHP内置函数

  15. 循环内部不要声明变量,尤其是大变量:对象

  16. 销毁变量释放内存,特别是大的数组

  17. 字符串函数代替正则表达式。

  18. split比exploade快