在编程话题经常看黑php的,而且也是排名黑最靠前的。php和java都学过,用的感受是web方面,php搭建起来很方便,很多方法直接用;java的xml配置反倒很啰嗦,算不算惊艳?222
回复内容:
作为有8年多的PHP编程经验的老司机,客观说一句,在Web开发领域,PHP是一门非常不错的语言,事实不以人的意志为转移。PHP有它不足的地方,但是它一直在持续完善和发展。如果大家有留意过《TIOBE世界语言排行榜》,PHP曾经排名更前,2010年的时候,曾经一度排名到第3名,而现在大概在第6名(2016年2月)。

语言排名的下降,个人认为不是因为使用的人变少了,而是领域更细分了,例如新增加的移动端开发,就改变了很多编程语言的占比。
PHP很简单,很容易学习,例如:
(1)屏蔽了内存管理、指针等比较复杂的语言特性。
(2)甚至屏蔽了变量类型的复杂性。
(3)PHP的环境搭建很简单,郎朗上手。
... ...
什么样的东西,能让人印象深刻的记住呢?
对于工作多年的老程序员,我们曾经在大学学习过的《汇编语言》,还能记得多少?(假设不从事相关的工作哈)或者C/C++,如果不从事相关开发,又还记得多少?
但是,如果学习PHP过的人,通常还能记得不少,因为PHP的基本语法压根就没有多少东西哈!
简单的东西,通常不容易被人忘记。
早期,很多人批评PHP的语言特性不完整,例如没有命名空间(Namespace),更早PHP4说面向对象不完整等等。还有一些人,批评弱类型,认为变量类型的隐形转换带来了很多坑,实际上,很可能是他们没有比较全面理解转换的规则。但是,随着PHP5.x系列的发展,对于语言特性层面的批评慢慢变少,因为它逐渐完善了这一块。然后,对于性能的批评又进一步开始增加,不过,随着PHP7的发布,性能获得大幅度的提升。
一个足够简单,而又不断自我完善的东西,通常不会被时代洪流所抛弃的。 世界上只有两种语言,一种是经常被人骂的,另一种是没人用的。 我tm写了一千多字的草稿后才发现是php而不是phd。 很多人喷,一是不了解,为了喷而喷。二来是酸葡萄心理。
PHP的开发者社区风格非常稳健,从php4到php5,再到PHP7,乃至难产的php6版本,php这一路发展下来,语言本身在稳步的前进,同时对向下兼容处理很好。所以整个社区可以一脉相承的发展。
PHP6最然最终没有发布,但其核心的功能也都陆续迁移到了php5.x版本中。
最新刚刚发布的PHP7版本,那也是让人惊艳。我自己实际部署的效果,整个系统只做了一行代码的改动,就无缝迁移到了PHP7版本,系统负载直接降到了小数。这就是生产力。
我相信PHP7的普及会很快,因为确实会给厂商带来巨大的实惠:性能提升,可以减少机器,减少人力,系统稳定性也更好,也可以带来更多的收入。
PHP的手册,评论系统也是非常的完善。很多人黑PHP也仅仅停留在早期的概念上。php是有历史的包袱,存在不一致的地方。但每种语言都有自己的不足。
决定程序优雅的是人,而不是语言。
===================2016年1月26日晚补充=====================
没想到很多人点赞,再补充下我自己使用PHP的经历:
大学的时候曾经学过很多语言,不过最终还是学习PHP比较有成就感,应该是和应用层接触比较紧密,作出的东西有人用,再加上那时候网站刚开始流行,用PHP做个网站,做个聊天室,搭个论坛,很有成就感。就这样一直用起了PHP。
说道这儿,说一下PHP为什么会被喷。因为PHP入门简单,所以从业人员水平良莠不齐,再加上PHP语言本身又比较灵活,缺少语言层面的约束,所以就导致了各种五花八门的写法。再加上各种PHP的开源软件的流行。这些软件是如此的流行,以至于问为什么这样写,回答是:某某软件是这样写的。所以这也确实是造成了PHP的代码普遍比较乱的现象。但这都是十几年前的事情了,新版本的PHP语法也越来越严谨,oop的功能也越来越完善,用PHP一样可以写出简洁优雅的代码出来。所以这时候再来喷PHP,其实就out了。
2004年的时候,和团队成员一起接手了一个老的网站。确实体会到了 PHP代码如果没有好的组织带来的混乱。当时index1.php index2.php index3.php,一堆的文件。花了几个月的时候,把原来的业务逻辑都梳理清楚,然后重新实现。04年的时候还主要是面向过程,那时候使用smarty做页面和应用的分离。后来虽然离开了,但值得自豪的是我们团队当时为这个网站打下了很好的基础,这个网站后来也有很不错的发展。
再后来加入了一家国内的一线互联网公司,一开始做开发。接手了一个老的系统,当年曾经为公司带来几千万年收入的系统,就是用普通的php, mysql主从备份做的架构。后来切换到了后台的全文检索引擎,前端还是用PHP。
这时候发生了一个重大的事故。客户自助系统的数据无法同步到后台的引擎。客户系统那边是java + oracle的架构,客户的下架广告无法正常同步到后台引擎。这个事故直接引发了一系列人员的清理,这是后话。我当时作为引擎的接口人,就用PHP写脚本统计两边状态不同步的列表,让客户系统这边发消息同步。最终把两边的数据同步好。(其实是一件很简单的事情)
后台我受不了半夜鸡叫(搞运维的都知道),我转行去做了自动化测试。写了三年的自动化测试脚本,整理了一系列的自动化测试框架,工具,方法。当然,这些也都是用PHP写的。:)
后台了09年准备创业,10年正式辞职创业,到现在,我们团队用PHP做了三款成熟的开源软件。我们曾经比较过和我们功能类似的一款用其他语言写的软件的代码量:那款软件功能是我们的1/3,代码量比较我们还多。他们系统中的bug和feature的比例很高。我不是想证明哪种语言如何,我只是想证明,PHP语言可以写出精简优雅的代码,而且可以写的很精炼,表现力丰富。
在做这几款软件的过程中,我们也遇到了PHP的一系列的问题:
- 如何解决全文检索的问题(不依赖第三方搜索引擎)
- 如何解决计划任务的问题(不依赖操作系统计划任务)
- 如何用户二次开发无法升级的问题
- 常见安全问题的防护(xss, sql注入,附件上传,csrf等)
- 如何用PHP做聊天服务器。(做轻量级的解决方案)
- 如何解决PHP环境部署问题。
我们都做了比较轻量级(尽量减少第三方依赖)的解决方案。
我们还用ssh + php做了自己服务器的监控系统,用PHP写了各种备份,运维,监控的脚本。
以上的这些工作,PHP都很好的完成了。而且又有了PHP7版本,这个版本真的是让人惊艳,期待鸟哥后面的更快的版本。
这一些其他的语言也都可以实现,也都可以做的很好。所以单纯的争论语言其实没有什么用。每种语言都有应用的场景和价值,脱离这些谈论,其实没有什么意义。
建议大家把精力放到怎么赚钱上面来,语言只是工具。决定程序优雅的是人,而不是语言。
===================2016年1月27日早补充=====================
评论有的朋友说,为什么java总是排在第一位呢。我想回答的是:既然java总是排在第一位,为什么还要老是去喷排在后面的PHP呢?这是什么心理在起作用呢?
我在回答这个提问的时候,就知道肯定有其他语言社区的人跳出来,肯定拿优雅说事。我想回答的是,你号称自己优雅,那就优雅呗。为什么还总是靠嘲笑其他语言来抬高自己呢?这是什么心理起作用呢?
真正的实力是不需要靠贬低其他人来证明的。
真正的实力就是用来让其他人来羡慕,嫉妒,恨的。(哈哈,拉仇恨了。)
有些吃饱了没事干的网民,对我们PHP的事情指手画脚。PHP一不输出键盘战士(不然也不会在舆论上被压着打),二不输出饥饿和贫困,三不去折腾你们,还有什么好说的。 内置轮子太多,被认为是走捷径! phper顾着低头码代码,忙着赚钱没空反击别人黑他们,反正他们一打一个$,这得多有钱啊
图的来源忘了,来自zhihuer。 php在哪里被黑的不惨烈? 看成phd了,逃~

phpisusedforsendendemailsduetoitsignegrationwithservermailservicesand andexternalsmtpproviders,自动化notifications andMarketingCampaigns.1)设置设置yourphpenvironcormentswironmentswithaweberswithawebserverserverserverandphp,确保themailfunctionisenabled.2)useabasicscruct

发送电子邮件的最佳方法是使用PHPMailer库。1)使用mail()函数简单但不可靠,可能导致邮件进入垃圾邮件或无法送达。2)PHPMailer提供更好的控制和可靠性,支持HTML邮件、附件和SMTP认证。3)确保正确配置SMTP设置并使用加密(如STARTTLS或SSL/TLS)以增强安全性。4)对于大量邮件,考虑使用邮件队列系统来优化性能。

CustomHeadersheadersandAdvancedFeaturesInphpeMailenHanceFunctionalityAndreliability.1)CustomHeadersheadersheadersaddmetadatatatatataatafortrackingandCategorization.2)htmlemailsallowformattingandttinganditive.3)attachmentscanmentscanmentscanbesmentscanbestmentscanbesentscanbesentingslibrarieslibrarieslibrariesliblarikelikephpmailer.4)smtppapapairatienticationaltication enterticationallimpr

使用PHP和SMTP发送邮件可以通过PHPMailer库实现。1)安装并配置PHPMailer,2)设置SMTP服务器细节,3)定义邮件内容,4)发送邮件并处理错误。使用此方法可以确保邮件的可靠性和安全性。

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

使用依赖注入(DI)的原因是它促进了代码的松耦合、可测试性和可维护性。1)使用构造函数注入依赖,2)避免使用服务定位器,3)利用依赖注入容器管理依赖,4)通过注入依赖提高测试性,5)避免过度注入依赖,6)考虑DI对性能的影响。

phperformancetuningiscialbecapeitenhancesspeedandeffice,whatevitalforwebapplications.1)cachingwithapcureduccureducesdatabaseloadprovesrovesponsemetimes.2)优化

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。