PHP有什么好处?[关闭]


14

每个人都知道对某些编程语言有偏见的人。尤其是PHP,似乎受其过去和其他一些问题(例如,松散类型)的困扰,通常被称为非严肃的编程语言,不应用于专业应用程序。

在这种特殊情况下,PHP:您如何辩解使用PHP作为Web应用程序的所选编程语言?有什么好处,PHP在哪些方面比ColdFusion,Java等更好?


5
PHP是一种区域化的,微创的癌​​症治疗方法,目前正在进行II期和III期临床测试。PHP还可以帮助更好地理解哈希冲突。PHP项目的组织者还帮助各种执法机构打击私人和商业不请自来的批量邮件违法行为以及整体工作,以帮助减少Internet上发送和接收的垃圾邮件数量。PHP在马萨诸塞州的数十个位置提供了支持小组。PHP是一种用于治疗精神疾病和药物滥用的程序。PHP位于第3层MPLS VPN(RFC2547)中。
Job

每种语言都有其仇恨/崇拜者。与其他语言相比,我不会特别讨厌PHP。我想说的是,一种语言越是钦佩,仇恨就越多。我相信我们可以将其编纂为:(admirers lang X/haters lang X) = AcmeConstant . AgeFactor(Lang X Age)。对于所有语言,AcmeContant都保持不变<(;-)
Martin York

1
我使用php向人们展示了如何不设计语言。
dan_waterworth 2011年

Answers:


13

Josh K 指出了一些相当不错的观点,因此我不会重申。相反,我将添加更多。

解释了。

只需FTP / SSH进入您的帐户,更改内容就需要更改并保存!无需编译,部署,重新启动服务器。

当然,对于在非正规开发环境中工作,没有版本控制,自动化测试,自动化构建等的人们来说,这是令人信服的。

其实很容易

说真的 至少对于真正的初学者来说,这确实很容易。如此容易,以至于我堂兄表达了对学习编程的兴趣,于是我给他买了一本Python书。PHP的约定可能会教给您一些不良习惯。

有能力

我与C / C ++语言有着一生的共同爱好。不知何故我们彼此不喜欢。在大学期间,当我不得不做涉及计算的项目时,我会选择PHP而不是C ++,并且在每种情况下我都能达到我的预期。实际上,也许程序的执行速度比用C ++编写的要慢,但是在这种情况下这并不是一个因素。

无论如何:神经网络,遗传算法,模糊逻辑……我在PHP上完成了所有这些工作。是的...人们一直在告诉我我很奇怪。


+1代表能力强。关于使用Java进行网络工作一直困扰着我的一件事是不断需要重新编译和部署。使用诸如Grails之类的东西可以缓解这种情况,但它远不及PHP好。
Josh K

口才和能力确实是一个很好的论点。+1所有答案都不错,并提出了一些很好的论据,但您的总结很好。
acme

只需看一下用于处理64位整数的代码即可:mysqlperformanceblog.com/2007/03/27/…您是否真的认为这很简单?
ThomasX 2011年

不,我不知道。请注意,我写道:“至少对于真正的初学者来说,这真的很容易。” 真正的初学者通常不需要理会平台之间的可移植性(如果这是一件好事,那是另一个问题)。一般建议:如果您希望使用BCMath扩展名处理PHP中的大整数(是的,我知道这不是最好的解决方案……但这就是PHP的方式;))
Mchl 2011年

17

这并不是每个人都会同意的,但是我认为PHP如此受欢迎的另一个原因是,它很容易获得免费的托管帐户。

许多希望进入Web开发的年轻学生都选择PHP,因为在线安装服务器不会花费任何费用,因此他们可以免费试用/学习它。

尽管有其他语言(java,ruby,.net)的免费托管选项,但要使用它们却难得多。


成本绝对是广泛使用的主要因素。
2011年

14

模板化

PHP具有内置的模板功能,没有奇怪的标记,解析或开销。有些像这样,有些不是。

随身携带

PHP几乎可以在所有服务器和大多数平台上运行。事实上,它在每个服务器上运行的大部分。您可以在IIS,Apache,Nginx等环境下运行它。这意味着您只需写入一次-随处可移植。此可移植性确实有一些限制,具体取决于您必须支持的环境设置。商业应用程序和开源/广泛应用程序之间会有所不同。

流行

PHP有一个庞大的社区,并且还在不断增长。这个社区是PHP广泛流行的结果。您有非常活跃的邮件列表,讨论论坛以及大量可以在开发时回答问题的人。

成本

PHP本身是免费的,并且与之兼容的大多数项目(Apache,PostgreSQL,MySQL)都是免费的。这使您的项目的初始成本门槛非常低。


我真的不会说可移植性是PHP的强项。如果您想实际编写可移植的PHP,则必须解决以下事实:可以用多种不同的方式配置该语言,例如,您必须检查config选项以获取魔术引号并运行,stripslashes()因为有些启用了config选项,有些则没有。没错
吉姆(Jim)

2
@Jim-比大多数东西更容易携带。
2011年

@Orbling-真的吗?您在考虑其他语言的哪些相似功能?
吉姆

1
@Jim:我写的代码期望“最佳实践”环境。如果我做一个OS项目我将强制规定数量的选项/设置(例如,magic_quotes_gpc)。解决此问题的最佳方法(如果必须)将是将这些if / else处理块封装到帮助函数中,从而无需在应用程序代码中内联引号检查。
乔什K

1
@Josh-如果这些天我仍然大量编写PHP,我将与您做同样的事情,但是,如果您的代码依赖于“最佳实践”环境,则它是不可移植的。具体来说,由于虚假的反斜杠被添加到所有用户提供的数据中,因此在许多糟糕的主机上将出现数据损坏错误。考虑到PHP托管无处不在是使用PHP的主要优势之一,因此我认为将所有这些糟糕的主机纳入考虑范围是公平的。您描述的帮助程序功能是典型的处理方式,但这是可移植性问题的解决方法。
Jim

5

PHP 无处不在。无论您拥有哪种疯狂的怪异虚拟主机,都不大可能不安装PHP。这意味着,如果您要编写必须在其他人的服务器上运行的Web应用程序,则始终可以依赖一组PHP功能(PHP 4/5类和默认扩展名),并在减少支持的同时增加用户群。


5

可用性 几乎每个虚拟主机都支持

开发速度 只需一个文本编辑器,无需编译

易于安装 即使未安装,它也易于安装,甚至与LAMP / WAMP服务器一起预包装

文档 有大量的示例,支持组,书籍等。


1

PHP的一些优点:

  • 内置文件输入上传处理
  • 内置处理GET,POST和COOKIES中的数据
  • 内置会话管理
  • 快速写
  • 易于混合代码和HTML(注意:这也被视为不利)

现在,它也有几个明显的缺点:

  • 没有局部变量的概念...变量是全局范围的或函数范围的。这在某些时候烧伤您,特别是在使用循环的情况下。
  • 全局变量在函数范围内不可用,除非您特别要求使用global关键字。
  • 编程环境基于php.ini进行更改。这包括特定功能和内置数组的行为更改(例如$_GET$_POST值根据magic_quotes_gpc设置而更改)

1
他们的右脑中没有人会保持magic_quotes_gpc打开状态。首先,我质疑那种使引擎毫无价值的膨胀膨胀的人的理智。
乔什(Josh K)

1
“除非您明确要求,否则全局变量在函数作用域中不可用”-真的看不出这有何缺点。有一些语言是这样做的,而另一些则不是。
Mchl 2011年

1
@Mchl:大多数语言都不这样做,如果您不了解,这无疑是一个陷阱。令我烦恼的是,TCL是我使用过的唯一其他做到这一点的语言。
Powerlord 2011年

1
@Josh K:我以前的公司的主服务器上仍保留着它,因为我之前的首席程序员喜欢它,因此,大多数浮动的旧遗留PHP代码都依赖它。没有时间重新编码数百个网站。:-/
Orbling 2011年

1
@Mchl:Ada倾向于在失败会导致死亡,大量死亡的地方习惯。adaic.org/advantages/projects
Orbling 2011年

1

我认为有些人不喜欢PHP,因为您可以按自己喜欢的方式使用它。因为每个人都可以很容易地使用它,所以世界上有很多糟糕的代码。一些从未在那做过任何真正的PHP的程序员可能会以您使用PHP的方式来思考。有些人不喜欢PHP,因为他们喜欢其他东西,并且害怕新事物。

我个人喜欢PHP,因为我几乎可以在任何地方运行它。您可以在网上获得很多帮助,而且它是免费的。还有一些好的框架,例如Zend框架。但是大多数人无法到达目的地。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.