资讯专栏INFORMATION COLUMN

php 代码改进

Allen / 1280人阅读

摘要:数组代替没有函数调用的消耗多分支选择代替多个顺便说一下当只有一个正确的输出但是中间要排除很多的错误是不要用多个可以这样会是代码优雅一点面向对象与面向过程的选择能简化的事情尽量简化不要事事都想建一个类再来做类的实例化的消耗比函数调用更耗内存类

数组

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

多分支选择

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

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

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

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

尽量使用php自带的函数

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

关于命名

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

这是php, 不是c/c++

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

内存泄漏

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21953.html

相关文章

  • Netbeans 8发布 支持Java 8

    摘要:和同步发布的是的。和支持,包括现成的和配置及数据源。更加灵活的提示,可以禁用和启用该提示并更改警告级别。导航器显示目标。新的测试运行器支持。新的修复程序支持。版本控制增强功能支持工作副本,各种和支持增强功能。 和Java8同步发布的是Oracle的NetBeansIDE 8。NetBeans IDE 8.0 提供了现成的代码分析器和编辑器,可在其中使用最新的 Java 8 技术 -- ...

    沈俭 评论0 收藏0
  • 上手并过渡到PHP7(5)——轻量级“集合”迭代器-Generator

    摘要:轻量级集合迭代器泊学视频链接泊阅文档链接是加入的新语言特性。接下来,我们可以像访问一个普通集合一样使用现在重新执行我们的文件,就不会再报错了。简单来说,就是一个轻量级的,可以记住自身状态的集合迭代器。 轻量级集合迭代器-Generator泊学视频链接泊阅文档链接Generator是PHP 5.5加入的新语言特性。但是,它似乎并没有被很多PHP开发者广泛采用。因此,在我们了解PHP 7对...

    wupengyu 评论0 收藏0
  • php7.4都要来了

    摘要:性能提升当然需要付出代价如果预加载文件的来源发生变化,则必须重新启动服务器。应该指出,这是一个复杂的主题。默认情况下不启用由于不再维护,核心团队决定使用删除其默认安装。将在错误情况下抛出异常。请注意,强制转换不受影响。 新特性 预加载预加载是PHP核心的一个惊人的补充,可以带来一些重大的性能改进。简而言之:如果您今天使用的是框架,则必须在每次请求时加载和重新编译其文件。 预加载允许服务...

    zhangrxiang 评论0 收藏0
  • PHP上传图片的路径保存在数据库中,根据图片路径显示图片

    摘要:鉴于上一篇上传图片到数据库并可以进行显示链接描述有笔友提出了改进意见,下面这篇文章就是采纳改进意见进行修改的另外一种方案。结语本人刚接触不久,自知能力不够水平有限,该文中若存在什么不足或需改进之处还请大家多多指正。 鉴于上一篇《PHP上传图片到数据库并可以进行显示》链接描述有笔友提出了改进意见,下面这篇文章就是采纳改进意见进行修改的另外一种方案。 1、创建数据表 CREATE TABL...

    geekidentity 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<