php 代码改进

拓痕
• 阅读 2012
  1. 数组

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

  1. 多分支选择

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

function demo(){
    if () return false;
    if () return false;
    if () return false;
    return 'x';
}
  1. 面向对象与面向过程的选择

能简化的事情, 尽量简化, 不要事事都想建一个类再来做, 类的实例化的消耗比函数调用更耗内存, 类的实例化要在是分配堆内存, 不是栈内存, 当然这和代码可读性比起来, 都是小事
如果要扩展性, 肯定是需要抽象的, 就面向对象

  1. 尽量使用php自带的函数

不要想到自己实现, php自带的函数都是使用c语言来写的, 你用php写的运行效率能比c高?
要实现这个尽量通读php.net, 知道要实现什么功能在哪里找, 不要盲目,

  1. 关于命名

一定要语义话, 看了laravel 我真觉得这么多年变量函数命名都是假的

  1. 这是php, 不是c/c++

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

  1. 内存泄漏

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

点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
3年前
javascript实践教程-07-分支结构
本节目标1.掌握js中4种分支结构。内容摘要本篇介绍了js中的4种分支结构:if、ifelse、elseif、switchcase,用来判断在不同的条件下运行不同的代码分支。阅读时间1015分钟。分支结构js中分支结构总共有4种:ififelseelseifswitchcaseifif用来判断某个条件是否成立,如果成立则执行条
Souleigh ✨ Souleigh ✨
4年前
Javascript 常用代码优化和重构的方法
简介主要介绍以下几点:1.提炼函数2.合并重复的条件片段3.把条件分支语句提炼成函数4.合理使用循环5.提前让函数退出代替嵌套条件分支6.传递对象参数代替过长的参数列表7.少用三目运算符8.合理使用链式调用9.分解大型类10.活用位操作符11.纯函数本文会不断更新,不足之处欢迎
菜园前端 菜园前端
2年前
什么是函数组合?
原文链接:什么是函数组合?函数组合(Compose),如果一个函数要经过多个函数处理才能得到最终值,这个时候可以把中间过程的函数合并成一个函数。函数组合默认是从右到左执行,每个函数只能接收一个参数,否则需使用柯里化进行转换。作用函数组合可以让我们把细粒度的
Wesley13 Wesley13
3年前
IOS 面试题(四)
1.ObjectC有多继承吗?没有的话用什么代替?
1OC是单继承,没有多继承2有时可以用分类和协议来代替多继承2.ObjectC有私有方法吗?私有变量呢?
1OC没有类似@private(http://my.
Wesley13 Wesley13
3年前
PHP基础之输出缓冲区基本概念、原理分析
一、概念在PHP运行的过程中,可以将会产生输出的函数或操作结果暂时保存在PHP的缓冲区,只有当缓冲区满了、或者PHP运行完毕、或者在必要时候进行输出,才会将数据输出到浏览器,此缓冲数据的区域称为PHP的输出缓冲区(OB)。二、原理①使用了缓冲区之后,当执行PHP的时候,如果碰到了echo、print\_r之类的会输出数据的代码(实际上许多函数都会
Wesley13 Wesley13
3年前
PHP输出JSON,如何把空数组输出为对象
PHP输出JSON数据是非常方便的。一般情况下,PHP的一维数组输出为JSON时,会转成一个对象,也就是下面的形式:<?php$array'name''crazymus','age'18;echojson_encode($array
Wesley13 Wesley13
3年前
PHP_50则
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
Wesley13 Wesley13
3年前
PHP心得
1,花括号“{}”可以像“\\”操作数组一样操作字符串,来获得指定位置的字符。2,PHP标签“<?php?”在独立PHP脚本内可以不写结束标签,这是为了避免意外的空格导致输出而报错。可以用注释来标明脚本结束。3,echo是语法结构,不是函数。后面跟多个字符串时用逗号“,”效率更好。4,数组中,1、'1'、true为
Wesley13 Wesley13
3年前
PHP高性能编程
1.能用PHP数组完成的工作,绝不用文件形式来代替,数组是内存操作,内存操作速度对比文件操作快很多!2.判断一个数值是否在一个数组中,然后决定是否追加数组内容时,不推荐使用in\_array或者array\_key\_exists,因为函数判断都不如isset结构判断来的快!$num0;$resultar
Wesley13 Wesley13
3年前
PHP中的NOW()函数
是否有一个PHP函数以与MySQL函数NOW()相同的格式返回日期和时间?我知道如何使用date()做到这一点,但是我问是否有一个仅用于此的函数。例如,返回:2009120100:00:001楼使用此功能:functiongetDatetimeNow(){
小万哥 小万哥
1年前
Python 数组和列表:创建、访问、添加和删除数组元素
Python没有内置支持数组,但可以使用Python列表来代替。数组本页将向您展示如何使用列表作为数组,但要在Python中使用数组,您需要导入一个库,比如NumPy库。数组用于在一个变量中存储多个值:示例,创建一个包含汽车名称的数组:Pythoncars