阅读更多

3顶
3踩

编程语言

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

2012-10-17 15:44 by 副主编 wangguo 评论(9) 有6981人浏览
如今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 支持横向和...

  • 毕业设计选题 -未来生鲜运输车设计.pptx

    毕业设计选题 -未来生鲜运输车设计.pptx

  • 基于樽海鞘算法优化的极限学习机回归预测及其与BP、GRNN、ELM的性能对比研究

    内容概要:本文详细探讨了基于樽海鞘算法(SSA)优化的极限学习机(ELM)在回归预测任务中的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方法,尽管其训练时间较长,但在实际应用中仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方法的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文中提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。

  • 2025年中国生成式AI大会PPT(4-1)

    2025年中国生成式AI大会PPT(4-1)

  • 无刷直流电机双闭环调速系统的Simulink建模与参数优化

    内容概要:本文详细介绍了基于Simulink平台构建无刷直流电机(BLDC)双闭环调速系统的全过程。首先阐述了双闭环控制系统的基本架构,即外层速度环和内层电流环的工作原理及其相互关系。接着深入探讨了PWM生成模块的设计,特别是占空比计算方法的选择以及三角波频率的设定。文中还提供了详细的电机参数设置指导,如转动惯量、电感、电阻等,并强调了参数选择对系统性能的影响。此外,针对PI控制器的参数整定给出了具体的公式和经验值,同时分享了一些实用的调试技巧,如避免转速超调、处理启动抖动等问题的方法。最后,通过仿真实验展示了系统的稳定性和鲁棒性,验证了所提出方法的有效性。 适用人群:从事电机控制研究的技术人员、自动化工程领域的研究生及科研工作者。 使用场景及目标:适用于需要深入了解和掌握无刷直流电机双闭环调速系统设计与优化的人群。主要目标是帮助读者学会利用Simulink进行BLDC电机控制系统的建模、仿真和参数优化,从而提高系统的稳定性和响应速度。 其他说明:文章不仅提供了理论知识,还包括了许多实践经验和技术细节,有助于读者更好地理解和应用相关技术。

  • 西门子S7-1200 PLC与施耐德变频器Modbus通讯实现及调试技巧

    内容概要:本文详细介绍了西门子S7-1200 PLC与施耐德ATV310/312变频器通过Modbus RTU进行通讯的具体实现步骤和调试技巧。主要内容涵盖硬件接线、通讯参数配置、控制启停、设定频率、读取运行参数的方法以及常见的调试问题及其解决方案。文中提供了具体的代码示例,帮助读者理解和实施通讯程序。此外,还强调了注意事项,如地址偏移量、数据格式转换和超时匹配等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要将西门子PLC与施耐德变频器进行集成的工作人员。 使用场景及目标:适用于需要通过Modbus RTU协议实现PLC与变频器通讯的工程项目。目标是确保通讯稳定可靠,掌握解决常见问题的方法,提高调试效率。 其他说明:文中提到的实际案例和调试经验有助于读者避免常见错误,快速定位并解决问题。建议读者在实践中结合提供的代码示例和调试工具进行操作。

Global site tag (gtag.js) - Google Analytics