Heim  >  Artikel  >  Backend-Entwicklung  >  php 优化

php 优化

高洛峰
高洛峰Original
2016-10-20 13:54:35912Durchsuche

1 引号

关于双引号"",单引号''
如果不转义就使用单引号, 因为双引号会搜索变量, 单引号包裹的仅仅是字符串

2 数组入栈

$arr[] = 'x'; 代替 array_push($arr, 'x'), 没有函数调用的消耗

3 多分支选择

switch case代替多个if else顺便说一下, 当只有一个正确的输出, 但是中间要排除很多的错误是, 不要用多个if else, 可以这样,会是代码优雅一点

function demo(){
    if () return false;
    if () return false;
    if () return false;
    return 'x';
}

4 面向对象与面向过程的选择

能简化的事情, 尽量简化, 不要事事都想建一个类再来做, 类的实例化的消耗比函数调用更耗内存, 类的实例化要在是分配堆内存, 不是栈内存

5 尽量使用php自带的函数

不要想到自己实现, php自带的函数都是使用c语言来写的, 你用php写的运行效率能比c高?

6 尽量不要使用全局变量

global, 全局变量影响程序结构,

7 这是php, 不是c/c++

在c中i++只需要一条cpu指令, 所以我一直以为$i++的效率很高, 但是我看到的框架(比如tp)都没用使用$i++, 而是使用$i += 1, 才发现我太年轻了, 在php中$i++需要4条opcodes

8 内存泄漏php中一般不会内存泄漏的(运行完了就退出了, 没有常驻进程), 但我就遇到过同事写的程序, 莫名奇妙的返回空的页面, 但是看代码逻辑好像又没问题, 用xdebug调试才发现, 递归没有出口导致无限调用, 所以是程序就有可能出现内存泄漏


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP抓取远程图片教程Nächster Artikel:PHP获取客户端的IP