阅读更多

3顶
3踩

编程语言

原创新闻 10 条 Tips 助你成为优秀的 PHP 开发者

2012-10-17 15:44 by 副主编 wangguo 评论(9) 有6953人浏览
如今PHP已经成为了最流行的web开发语言,数以百万计的网站使用PHP开发,其中不乏一些鼎鼎有名的站点,如Facebook、Wikipedia等,以及一些知名的CMS,如WordPress、Joomla和Drupal等。

对于PHP开发者来说,提高编码水平相当重要。本文分享一些开发经验,以帮助你成为一名优秀的PHP开发者。

1.  优先使用PHP核心函数和类

创建自己的函数之前,请务必查看PHP手册。使用PHP的核心函数,可以帮你节省大把时间。例如,没有必要去创建一个用于RSS订阅的XML解析器,你可以利用PHP的XML解析器函数

2.  一定要创建一个配置文件

不要将你的数据库连接设置分散到每个PHP文件中,你可以使用一个配置文件,这样可以使你的代码更加模块化,更易于维护。你只需创建一个数据库配置文件,然后在PHP文件中引用即可,以后可以很方便地更改连接信息。

3.  经常净化将进入数据库的数据

SQL注入是PHP开发者面临的一个很大的威胁。大多数PHP开发者使用MySQL作为数据库。因此,首先你应该对“注入”有一个充分的认识。你可以使用PHP的mysql_real_escape_string函数来避免SQL注入,还可以在mysql_real_escape_string中使用htmlspecialchars来转义HTML字符,这样不仅可以保护数据库,还可以保护站点免遭XSS攻击。

4.  始终开启错误报告(Error Reporting)

在项目开发阶段,要始终保持error_reporting是开启的,这样可以在运行时显示错误,帮助你快速确认错误发生的原因。

你可以在php.ini文件中通过下列设置来开启错误报告功能:

error_reporting(E_ALL);


也可以在脚本中通过PHP ini函数来开启:

ini_set(‘error_reporting’, E_ALL);


5.  不要过度注释你的代码

没有必要为每一行代码都添加上注释,只需注释代码中难以理解的部分即可,以便你以后查看时知道代码的作用。像MySQL数据库连接这样的代码就没必要注释了。

6.  使用三元运算符

尝试使用三元运算符来代替if/else语句。三元运算符可以使你的代码更简洁,更易于浏览。但要注意,一个语句中最多使用一个三元运算符。

使用三元运算符的语句:

$yourname= (empty($_POST['name'])) ? ‘default’ : $_POST['name']; 


类似的if/else语句:

if (empty($_POST['name'])) {
       $youraction = ‘default’; 
} else {
       $youraction = $_POST['name'];
}


7.  str_replace()比ereg_replace()和preg_replace()更好

str_replace()函数在替换字符串方面要比正则表达式更有效。事实上,str_replace()比ereg_replace()和preg_replace()的效率要高出60%。但是,如果你正在使用正则表达式的话,ereg_replace() 和preg_replace()会比str_replace()快很多。

8.  使用isset代替strlen

如果你要检查一个字符串的长度,请使用isset来代替strlen。通过使用isset,你的调用将快6至40倍。此外,使用isset时,即使变量不存在,你的调用也将有效。

9.  使用一个PHP框架

可供你选择的PHP框架有很多,像CakePHPZendSymfonyCodeIgniter等,这些框架集成了大部分常用的功能需求,可以帮助你提高开发的效率,节省开发时间。

10.  使用Memcached

如果你需要开发一个数据库驱动的网站,Memcached 可以有效提升网站的速度。Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。你可以在PHP.net站点找到有关memcached的详细教程。

英文原文:10 Smart Tips to Become a Better PHP Developer
3
3
评论 共 9 条 请登录后发表评论
9 楼 流水... 2012-11-19 09:24
jancy 写道
做了几年的PHP开发,看这篇文章看的甚是纠结。
不知道楼主如何得出“如果你正在使用正则表达式的话,ereg_replace() 和preg_replace()会比str_replace()快很多。 ”的结论。
应该没有人使用str_replace()来做正则替换的吧,没有可比性。

主要是在普通文本替换,而不需要正则的时候,建议使用str_replace来提高效率!
8 楼 jancy 2012-10-19 01:06
做了几年的PHP开发,看这篇文章看的甚是纠结。
不知道楼主如何得出“如果你正在使用正则表达式的话,ereg_replace() 和preg_replace()会比str_replace()快很多。 ”的结论。
应该没有人使用str_replace()来做正则替换的吧,没有可比性。
7 楼 dashuang 2012-10-18 15:48
   
6 楼 sunlong 2012-10-18 13:30
没文章发表了吧?800年前的文章了
5 楼 zhukewen_java 2012-10-18 08:59
三目运算符只能是使代码简洁,而不是更易于浏览,因于if/else才是更易于浏览的,因为它更符合人类的直接思维逻辑。
4 楼 iminto 2012-10-18 08:43
文章质量太差。
引用
4.  始终开启错误报告(Error Reporting)

这一条标题是对的,但是内容错的
引用
8.  使用isset代替strlen

更是典型的脚本小子的特点,追语法,而不注重算法和可读性。
引用
2.  一定要创建一个配置文件

这一条纯粹凑字数的。。。
3 楼 fyland 2012-10-17 16:58
第9条应该合理的选择框架,比如Zend Framework大而全,但太过臃肿,性能也很差!
2 楼 fyland 2012-10-17 16:56
第六条有误:
在PHP中三元式比if-else的效率要差,看文章http://www.laruence.com/2011/11/04/2258.html

不知道在最新的版本是否已进行了优化
1 楼 john813 2012-10-17 16:36
如果想学习PHP,你可能应该参考一下 http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ 和 https://maurus.net/resources/programming-languages/php/

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 10条Tips助你成为优秀的PHP开发者

    如今PHP已经成为了最流行的web开发语言,数以百万计的网站使用PHP开发,其中不乏一些鼎鼎有名的站点,如...本文分享一些开发经验,以帮助你成为一名优秀的PHP开发者。 1. 优先使用PHP核心函数和类创建自己的函数之...

  • 一名优秀的Flex开发者需要知道的10样东西

    原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html 翻译:http://bbs.9ria.com/viewthread.php?tid=54144&amp...要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Fle...

  • [转载]一名优秀的Flex开发者需要知道的10样东西

    原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html 翻译:...要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不...

  • 世界10大编程语言,Java不是第一,PHP才第五?!

    如果你是软件开发领域的新手,...阅读下文,你会发现一些用于Web开发,移动开发,游戏开发等的优秀、专业的编程语言。最后,你将清楚地了解哪种编程语言可以在未来几年甚至更长时间内帮助你的职业发展。让我们来看一...

  • 10 个技巧助你写出卓越的jQuery插件

    而大多数插件只要再加入一点点额外的功能,就能从“优秀”变成“卓越”,并且有更广泛的用处。  本文针对jQuery插件的开发者列出了一些技巧,以帮助开发者写出更好的jQuery插件,并且这些技巧在插件的维护和扩展...

  • Flex开发者需要知道的10件事

    FlexActionScript编程框架设计模式 原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html 翻译:...要想成为一名优秀的Flex编程人员,单

  • 斯坦福所倡导的设计思维_如何成为开发者倡导者:我的故事和一些实用技巧

    In conclusion, I believe that three components make great developer advocates: 总而言之,我相信以下三个方面可以成为优秀的开发者倡导者: Brain - to be able to help use their software in the most ...

  • 权威的PHP 5.6、7.0、7.1、7.2、7.3和7.4 php运行效率基准测试

    权威的5.6、7.0、7.1、7.2、7.3和7.4 PHP基准(2020) 通过布莱恩·杰克逊(Brian Jackson) • 更新于2020年4月22日 每年,我们都会在各种平台上发布深入的性能基准测试,以了解不同版本的PHP如何相互竞争。这次...

  • php怎么设置学年下拉框_php的下拉框的值

    Joomla的15种字段类型是什么?Joomla现在有了自定义字段,可以添加到文章、用户配置文件和联系人表单中。...该字段使用PHP指定格式。默认值为“%...文章山边的大树2019-08-072659浏览量input缓存中选值事...

  • 盘点iOS开发者必看的105个全球最佳博客

    如果你正在寻找见解深刻,并富有教育意义的iOS开发博客,那就找对地方了。下面列出了质量最好且最为活跃的105个线上博客。如你所知,互联网上高质量的iOS博客并不缺乏,但我决定再过滤一下,去芜存菁,找出最精华的...

  • GitHub 优秀的 Android 开源项目

    https://github.com/jfeinstein10/JazzyViewPager/blob/master/JazzyViewPager.apk?raw=true 效果类似桌面左右切换的各种效果,不过桌面并非用ViewPager实现而已 Android-DirectionalViewPager 支持横向和...

  • 给好学进取的开发者的一些建议(自学故事)

    原文连接:Tips for Aspiring Developers (Self-Taught Story) 就像是一个不断发展的科目,每天都有新人加入,其中,"我该学什么编程语言","我怎么开始","我怎么找到一份工作","我该从何处学习"等等是最常见的...

  • 世界10大编程语言,Java不是第一,PHP才第五

    以下是一些给选择编程语言的开发者们的建议: 前端Web开发– JavaScript 后端Web开发– JavaScript,Python,Java,PHP,Ruby,C# 桌面应用程序– Java,C ++,Python 移动开发– Swift,Java,C# 游戏开发– C ++...

  • 十条PHP技巧来提升你的编程水平

    原文作者:Glen Stansberry原文链接:10 Advanced PHP Tips To Improve Your Programming自从PHP在1995年诞生就快速的成长。此后,php已经成为web应用中最流行的编程语言。许多流行的网站都是由php驱动,而且大多数...

  • android 优秀控件以及开源项目

    https://github.com/jfeinstein10/JazzyViewPager/blob/master/JazzyViewPager.apk?raw=true 效果类似桌面左右切换的各种效果,不过桌面并非用ViewPager实现而已 Android-DirectionalViewPager 支持横向和...

  • 级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均

    级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,级联H桥SVG无功补偿系统在不平衡电网中的三层控制策略:电压电流双闭环PI控制、相间与相内电压均衡管理,不平衡电网下的svg无功补偿,级联H桥svg无功补偿statcom,采用三层控制策略。 (1)第一层采用电压电流双闭环pi控制,电压电流正负序分离,电压外环通过产生基波正序有功电流三相所有H桥模块直流侧平均电压恒定,电流内环采用前馈解耦控制; (2)第二层相间电压均衡控制,注入零序电压,控制通过注入零序电压维持相间电压平衡; (3)第三层相内电压均衡控制,使其所有子模块吸收的有功功率与其损耗补,从而保证所有H桥子模块直流侧电压值等于给定值。 有参考资料。 639,核心关键词: 1. 不平衡电网下的SVG无功补偿 2. 级联H桥SVG无功补偿STATCOM 3. 三层控制策略 4. 电压电流双闭环PI控制 5. 电压电流正负序分离 6. 直流侧平均电压恒定 7. 前馈解耦控制 8. 相间电压均衡控制 9. 零序电压注入 10. 相内电压均衡控制 以上十个关键词用分号分隔的格式为:不

  • GTX 1080 PCB图纸

    GTX 1080 PCB图纸,内含图纸查看软件

  • 深度优化与应用:提升DeepSeek润色指令的有效性和灵活性指南

    内容概要:本文档详细介绍了利用 DeepSeek 进行文本润色和问答交互时提高效果的方法和技巧,涵盖了从明确需求、提供适当上下文到尝试开放式问题以及多轮对话的十个要点。每一部分内容都提供了具体的示范案例,如指定回答格式、分步骤提问等具体实例,旨在指导用户更好地理解和运用 DeepSeek 提升工作效率和交流质量。同时文中还强调了根据不同应用场景调整提示词语气和风格的重要性和方法。 适用人群:适用于希望通过优化提问技巧以获得高质量反馈的企业员工、科研人员以及一般公众。 使用场景及目标:本文针对所有期望提高 DeepSeek 使用效率的人群,帮助他们在日常工作中快速获取精准的答案或信息,特别是在撰写报告、研究材料准备和技术咨询等方面。此外还鼓励用户通过不断尝试不同形式的问题表述来进行有效沟通。 其他说明:该文档不仅关注实际操作指引,同样重视用户思维模式转变——由简单索取答案向引导 AI 辅助创造性解决问题的方向发展。

  • 基于FPGA与W5500实现的TCP网络通信测试平台开发-Zynq扩展口Verilog编程实践,基于FPGA与W5500芯片的TCP网络通信测试及多路Socket实现基于zynq开发平台和Vivad

    基于FPGA与W5500实现的TCP网络通信测试平台开发——Zynq扩展口Verilog编程实践,基于FPGA与W5500芯片的TCP网络通信测试及多路Socket实现基于zynq开发平台和Vivado 2019软件的扩展开发,基于FPGA和W5500的TCP网络通信 测试平台 zynq扩展口开发 软件平台 vivado2019.2,纯Verilog可移植 测试环境 压力测试 cmd命令下ping电脑ip,同时采用上位机进行10ms发包回环测试,不丢包(内部数据回环,需要时间处理) 目前实现单socket功能,多路可支持 ,基于FPGA; W5500; TCP网络通信; Zynq扩展口开发; 纯Verilog可移植; 测试平台; 压力测试; 10ms发包回环测试; 单socket功能; 多路支持。,基于FPGA与W5500的Zynq扩展口TCP通信测试:可移植Verilog实现的高效网络通信

  • Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警及记录、自动实验、数据处理与查询存储,报表生成与打印一体化解决方案 ,Labview液压比例阀

    Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警及记录、自动实验、数据处理与查询存储,报表生成与打印一体化解决方案。,Labview液压比例阀伺服阀试验台多功能程序:PLC通讯、液压动画模拟、手动控制与调试、传感器标定、报警管理及实验自动化,labview液压比例阀伺服阀试验台程序:功能包括,同PLC通讯程序,液压动画,手动控制及调试,传感器标定,报警设置及报警记录,自动实验,数据处理曲线处理,数据库存储及查询,报表自动生成及打印,扫码枪扫码及信号录入等~ ,核心关键词:PLC通讯; 液压动画; 手动控制及调试; 传感器标定; 报警设置及记录; 自动实验; 数据处理及曲线处理; 数据库存储及查询; 报表生成及打印; 扫码枪扫码。,Labview驱动的智能液压阀测试系统:多功能控制与数据处理

Global site tag (gtag.js) - Google Analytics