0

0

PHP7开发中需要避免踩的十个坑

Guanhui

Guanhui

发布时间:2020-04-30 10:45:08

|

2831人浏览过

|

来源于CSDN

转载

php7引入了许多新特性和新功能,同时也有废弃的特性和功能,这就带来了一些php7以前适用的代码而在php7中不是很好,所以本篇文章告诉大家如何避免php7中的坑。

1.不要使用 mysql_ 函数

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

2.不要编写垃圾代码

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

立即学习PHP免费学习笔记(深入)”;

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

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

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

640?wx_fmt=jpeg

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

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

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

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

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

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

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

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

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

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

phpBIZ
phpBIZ

基于phpBIZ v2.0 中文自由版,主要实现的功能: 会员数据整合: 论坛的用户可无需注册即可以拥有自己在phpBIZ的帐号,注册一个论坛帐号即可同时拥有一个phpBIZ帐号,注册一个phpBIZ帐号同时也会开通一个相应的论坛帐号,因而避免了重复注册 新商品传送至论坛: 商家登陆的每件商品可以选择是否在论坛发帖通知。后台管理员设定传送论坛版块

下载

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

对于 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 顶级开发者都懂得很多其它编程语言,这并非偶然。

推荐教程:《PHP7教程

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
java
java

Java是一个通用术语,用于表示Java软件及其组件,包括“Java运行时环境 (JRE)”、“Java虚拟机 (JVM)”以及“插件”。php中文网还为大家带了Java相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

832

2023.06.15

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

738

2023.07.05

java自学难吗
java自学难吗

Java自学并不难。Java语言相对于其他一些编程语言而言,有着较为简洁和易读的语法,本专题为大家提供java自学难吗相关的文章,大家可以免费体验。

734

2023.07.31

java配置jdk环境变量
java配置jdk环境变量

Java是一种广泛使用的高级编程语言,用于开发各种类型的应用程序。为了能够在计算机上正确运行和编译Java代码,需要正确配置Java Development Kit(JDK)环境变量。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

397

2023.08.01

java保留两位小数
java保留两位小数

Java是一种广泛应用于编程领域的高级编程语言。在Java中,保留两位小数是指在进行数值计算或输出时,限制小数部分只有两位有效数字,并将多余的位数进行四舍五入或截取。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

398

2023.08.02

java基本数据类型
java基本数据类型

java基本数据类型有:1、byte;2、short;3、int;4、long;5、float;6、double;7、char;8、boolean。本专题为大家提供java基本数据类型的相关的文章、下载、课程内容,供大家免费下载体验。

446

2023.08.02

java有什么用
java有什么用

java可以开发应用程序、移动应用、Web应用、企业级应用、嵌入式系统等方面。本专题为大家提供java有什么用的相关的文章、下载、课程内容,供大家免费下载体验。

430

2023.08.02

java在线网站
java在线网站

Java在线网站是指提供Java编程学习、实践和交流平台的网络服务。近年来,随着Java语言在软件开发领域的广泛应用,越来越多的人对Java编程感兴趣,并希望能够通过在线网站来学习和提高自己的Java编程技能。php中文网给大家带来了相关的视频、教程以及文章,欢迎大家前来学习阅读和下载。

16926

2023.08.03

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

20

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.7万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号