注意!PHP 7中不要做的10件事

来源:本网整理

1:单引号代替双引号,双引号会去找变量。2:方法定义为static,性能提升4倍。3:$arr['id']的性能是$arr[id]的7倍。4:echo性能快,尽量使用echo$a,$b,$c而非echo$a.$b.$c。5:循环之前确定循环次数,尽量用foreach。6:注销不使用的变量,节省内存。7:尽量不使用魔法函数:_get、_set等。8:require_once()会检查是否载入,消耗内存。9:include文件时使用绝对路径,省去查找的时间。10:脚本开始执行时间$_SERVER[‘REQUEST_TIME’]要好于time()。11:正则效率低,用函数代替。12:str_replace函数比preg_replace函数快,但strtr函数的效率是str_replace函数的四倍。13:接收客串的效率比接收数组的效率高。14:switch case好于多个if else。15:用@屏蔽错误消息的方法很低效。16:打开apache的mod_deflate模块,可以提高网页的浏览速度。17:数据库连接当使用完毕时应关掉,不要用长连接。18:错误消息代价昂贵。19:在方法中递增局部变量,速度是最快的。几乎与在函数中调用局部变量的速度相当。20:递增一个全局变量要比递增一个局部变量慢2倍。21:递增一个对象属性(如:$this->prop+)要比递增一个局部变量慢3倍。22:递增一个未预定义的局部变量要比递增一个预定义的局部变量慢9至10倍。23:仅定义一个局部变量而没在函数中调用它,同样会减慢速度(其程度相当于递增一个局部变量)。PHP大概会检查看是否存在全局变量。24:方法调用看来与类中定义的方法的数量无关,因为我(在测试方法之前和之后都)添加了10个方法,但性能上没有变化。25:派生类中的方法运行起来要快于在基类中定义的同样的方法。26:调用带有一个参数的空函数,其花费的时间相当于执行7至8次的局部变量递增操作。类似的方法调用所花费的时间接近于15次的局部变量递增操作。27:Apache解析一个PHP脚本的时间要比解析一个静态HTML页面慢2至10倍。尽量多用静态HTML页面,少用脚本。28:尽量做缓存,可使用memcached。memcached是一款高性能的内存对象缓存系统,可用来加速动态Web应用程序,减轻数据库负载。对运算码(OP code)的缓存很有用,使得脚本不必为每个请求做重新编译。29:当操作字符串并需要检验其长度是否满足某种要求时,你想当然地会使用strlen()函数。此函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的内置数据结构,用于存储PHP变量)中存储的已知字符串长度。但是,由于strlen()是函数,多多少少会有些慢,因为函数调用会经过诸多步骤,如字母小写化(译注:指函数名小写化,PHP不区分函数名大小写)、哈希查找,会跟随被调用的函数一起执行。在某些情况下,你可以使用isset()技巧加速执行你的代码。30:当执行变量$i的递增或递减时,$i+会比+$i慢一些。这种差异是PHP特有的,并不适用于其他语言,所以请不要修改你的C或Java代码并指望它们能立即变快,没用的。i更快是因为它只需要3条指令(opcodes),$i+则需要4条指令。后置递增实际上会产生一个临时变量,这个临时变量随后被递增。而前置递增直接在原值上递增。这是最优化处理的一种,正如Zend的PHP优化器所作的那样。牢记这个优化处理不失为一个好主意,因为并不是所有的指令优化器都会做同样的优化处理,并且存在大量没有装配指令优化器的互联网服务提供商(ISPs)和服务器。31:并不是事必面向对象(OOP),面向对象往往开销很大,每个方法和对象调用都会消耗很多内存。32:尽量采用大量的PHP内置函数。33:如果在代码中存在大量耗时的函数,你可以考虑用C扩展的方式实现它们。34:mod_zip可作为Apache模块,用来即时压缩你的数据,并可让数据传输量降低80%。35:在可以用file_get_contents替代file、fopen、feof、fgets等系列方法的情况下,尽量用 file_get_contents,因为他的效率高得多!但是要注意file_get_contents在打开一个URL文件时候的PHP版本问题。36:尽量的少进行文件操作,虽然PHP的文件操作效率也不低的。37:优化Select SQL语句,在可能的情况下尽量少的进行Insert、Update操作(在update上,我被恶批过)。38:循环内部不要声明变量,尤其是大变量:对象。39:多维数组尽量不要循环嵌套赋值。40:在可以用PHP内部字符串操作函数的情况下,不要用正则表达式。41:foreach效率更高,尽量用foreach代替while和for循环。42:用i+1代替i=i+1。符合c/c++的习惯,效率还高。43:对global变量,应该用完就unset()掉。展开www.zgxue.com防采集请勿采集本网。

s">

注意!PHP 7中不要做的10件事

投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2016-09-18 我要评论 这篇文章主要为大家详细介绍了PHP 7中不要做的10件事,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ">

切记,在PHP 7中不要做的10件事

为什么是10点注意事项?我把我知道的几点告诉你吧(家用软水机): 1、最重要的一点,如果软化剂加的是钠盐,最好不要长期直接饮用,长期直接饮用最好加钾盐。因为钠会增加新陈代谢负担。但钾盐

1. 不要使用 mysql_ 函数 

4.(1)在交谈中不要涉及对方的“隐私区”和“敏感区”,以免引起不快。(2)在长辈、师长面前不可以指手画脚。(3)在交流中既不要过分谦卑,也不要趾高气扬,目空一切。5.谦虚谨慎、机智应变、扬长避短、显示

这一天终于来了,从此你不仅仅“不应该”使用mysql_函数。PHP 7 已经把它们从核心中全部移除了,也就是说你需要迁移到好得多的mysqli_函数,或者更灵活的 PDO 实现。

好心情和好身体,去之前的一个星期不要太劳累,把身体养好点,另外,一般身体平时没什么大碍的朋友,比如没有心脑血管疾病、心脏病之类的,对于高原反应是很小的,不要太担心,放松心情比喝什么红景天有用

 

找正规的培训机构去学习!北京附近学习PHP比较好的建议去兄弟连

2. 不要编写垃圾代码 

10.发现小黄花—担心小黄花—守护小黄花—共赏小黄花—珍藏小黄花 11.(1)拟人,比喻,形象写出了小黄花开放时动态的美,表现了小黄花听到板凳狗的鼓励后高兴、喜悦的心理。(2)一根”“两条”

这一条可能易于理解,但是会变得越来越重要,因为 PHP 7 的速度提升可能会隐藏你的一些问题。不要仅仅满足于你的站点速度,因为迁移到 PHP 7 才让它变快。 

为了理解速度有多重要,以及如何把事情做得更好,请看一看我们的文章速度优化入门指南。 

作为一名开发者,你应该总是确保按需加载脚本,尽可能连接它们,编写高效的数据库查询,尽可能使用缓存,以及其它。 

3. 不要在文件末尾使用 PHP 闭合标签 

你可以看一看,当一个文件以 PHP 代码结尾时,WordPress 多数核心代码都把末尾的 PHP 标签去掉了。实际上,Zend 框架特别禁止了它。PHP 并不需要文件末尾的闭合标签,并且我们可以通过去掉它来保证不会在后面添加任何的空白字符。 

4. 不要做不必要的引用传递 

我个人不喜欢引用传递。我知道有时候它很实用,但是其它情况下它使代码变得难懂,并且更难预测结果。 

据说一些人认为它使代码运行更快,但是根据一些 PHP 高级程序员所说,这并不正确。 

说明引用为什么不好的一个例子是,PHP 内建了shuffle()和sort()。它们修改原始数组,而不是返回处理后的数组,这很不合逻辑。 

5. 不要在循环中执行查询 

在循环中执行查询非常浪费。它给你的系统施加不必要的压力,并且可能能够在循环外部更快获得相同结果。当我遇到需要这样的情况时,我通常会使用两个分离的查询来解决问题,我会使用它们来构建数据数组。之后我会遍历数组,并不需要在这个过程中执行查询。 

由于 WordPress 适用于这里,它可能有一些例外。虽然get_post_meta() 会从数据库获取大量数据,如果你正在遍历某个特殊博文的元数据你可以在循环中使用它。这是因为当你第一次调用它的时候,WordPress实际上会获取所有元数据并缓存它们。后续的调用使用这些缓存数据,没有数据库的调用。 

弄懂这些的最佳方式是阅读函数文档,以及使用类似 Query Monitor 的工具。 

6. 不要在 SQL 查询中使用 * 

当然,这个更像 MySQL 的问题,但是我们习惯在 PHP 中编写 SQL 代码,所以都差不多。无论如何,如果可以避免的话,不要在 SQL 查询里使用通配符,尤其是数据库有很多列的时候。 

你应该明确指定需要哪些行,并且仅仅获取它们。这有助于减少所用资源,保护数据,以及让事情变得尽可能清晰。 

对于 SQL,你需要了解所有可用的函数,并且尽可能测试其速度。在计算均值、求和或计算类似数值时,要使用 SQL 函数而不是 PHP 函数。如果你不确定某个查询的速度,测试它并且尝试一些其它的编译 — 之后使用最好的那个。 

7. 不要信任用户输入 

信任用户输入是不明智的。始终校验、过滤、转义、检查并留好退路。用户数据存在三个问题:我们开发者并没有考虑每种可能性,它通常不正确,以及它可能是蓄意破坏。 

经过周密考虑的系统可以防护这些威胁。要确保使用类似filter_var()的内建函数检查适当的值,以及在处理数据库时转义(或预编译)。 

WordPress 拥有一些函数来解决问题。详见文章校验、转义和过滤用户数据。 

8. 不要故作聪明 

你的目标应该是编写优雅的代码,来更清晰地表达你的意图。你可能能够通过将任何东西缩短为一个单词的变量,使用多层的三元逻辑,以及其它手段,从每个页面中优化 0.01 秒。但这只会给你和你周围的人产生大麻烦。 

合理命名变量,为代码编写文档,优先选择清晰而不是简洁。甚至还可以更好,使用标准的面向对象代码,它本身或多或少就是文档,不需要一大堆内联数值。 

9. 不要重新发明轮子 

PHP 到现在为止有很长时间了,网站被造出来的时间更长。很可能无论你需要造出什么,一些人之前早就造出来了。不要害怕向他人寻求支持,Github是你的好朋友,Composer也是,Packagist也是。 

从日志工具到调色工具,从性能分析器到单元测试框架,从 Mailchimp API 到 Twitter Bootstrap,每个东西都可以通过按下按键(或者敲下命令)来获取,使用它们吧! 

10. 不要忽略其它语言 

如果你是个 PHP 程序员,现在有个好机会去至少了解 HTML、CSS、JavaScript 和 MySQL。当你能够更好地处理这些语言时,就是重新学习 JavaScript 的时机了。JavaScript 并不是 jQuery,你应该合理地学习 JavaScript 来更高效地使用它。 

我也打算向你推荐学习面向对象的 PHP,它可以节省时间,并且在代码规模更大时会变得更好。对于类似 C# 和 Java 的语言,在你了解 OOP 之后,它们也更易于理解。 

通过了解包管理器、构建脚本、CoffeeScript、LESS、SASS、YAML 、脚本引擎和其它强大的工具来扩展你的知识面。我强烈向你推荐看一看其它框架,尤其是 Laravel。 

当你使用它们出色完成任务时,学习 Ruby、RoR、Android、iPhone 和 Windows Phone 应用开发如何?你可能会认为这毫无意义,因为它们在你的舒适区和工作所需范围之外,但是这就是它们的意义。每种语言都有一些要学习的实用的东西,以及从没碰到的新知识。所有 PHP 顶级开发者都懂得很多其它编程语言,这并非偶然。

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持突袭网。

七月十四,百鬼夜行。以我经验来说,其实十四才是最不舒服的时候,包括昨晚。首先,我是相信有鬼的…但除了唯一那一次十四的凑巧,我竟从来没有准确目击过一位兄弟,无论多么可怕的境况,包括别人清晰看到她在我周围我依旧看不到。其实emmmm这个回答挺无趣的,讲起来没波折,只是长见识了而已。农历七月“鬼节”民俗禁忌:避免带红绳、铃铛、风铃等招鬼物,尽量避免出门。若遇到鬼压身、鬼打墙等灵异事件,不要慌张,集中一切注意力,睁开眼睛内容来自www.zgxue.com请勿采集。

免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
Copyright © 2017 www.zgxue.com All Rights Reserved