随着 JavaScript 的兴起以及 React、Angular 和 Vue 等框架和库的激增,许多新开拓职员出于多种缘故原由正在转向这些而不是 PHP,受此Twitter 线程的启示,我们将在特性、功能、性能和协作方面谈论 PHP 和 JavaScript。

PHP 的历史

PHP最初由Rasmus Lerdorf 于 1994 年开拓,随着韶光的推移变得更加健壮,遵照 2011 年的定期发布周期并引入了诸如支持类型、JSON、命令行实用程序和即时编译等功能,作为一种灵巧的做事器端技能,PHP 适用于多种用例。

JavaScript 在 2000 年代初期成型,但是此时PHP已经被广泛采取,随着 JavaScript 作为一种措辞的成熟以及其他库和框架的引入,开拓职员开始寻求用 JavaScript 代替 PHP 来知足他们的 Web 开拓需求。

php不执行为什么人们不爱好 PHP Vue.js

PHP 供应了 JavaScript 开箱即用的许多功能,例如处理条件、循环、类型、模块化和工具,PHP 的一个紧张障碍是 JavaScript 的入门门槛较低,例如,您可以仅利用浏览器和您喜好的文本编辑器来编写和运行 JavaScript。
但是,要利用 PHP(一种脚本措辞),您必须利用阐明器和运行时。

实现 PHP

实现 PHP 有几种不同的方法,但最盛行的方法之一是Zend 引擎,要利用 Zend 引擎,您须要一台运行 PHP 编译器的机器,然后您可以从托管位置为 Zend 引擎供应做事。

利用 JavaScript,您可以利用 Node.js 运行时处理前端和后端开拓,前端项目直接在客户真个浏览器中运行 JavaScript,这意味着可以从 CDN 或静态文件位置供应 JavaScript 代码,因此您不须要成熟的做事器来托管您的内容。

同样,利用 npm,您的后端项目也会留下非常小的足迹;您可以在做事器上运行它们,也可以在不同的云供应商处利用无做事器功能。

JavaScript 与 PHP:性能

JavaScript 和 PHP 可以实行类似的功能,但在幕后,您将看到它们的真正不同之处。

JavaScript 是事宜驱动的,带有许可异步活动的事宜循环,与同步运行 JavaScript 代码(每行一次运行一个)不同,JavaScript 可以一次运行代码的多个部分,从而防止 JavaScript 程序的主线程被壅塞,此外,回调函数和事宜循环等功能许可您同时处理多个活动。

另一方面,PHP 是同步的,但许可多线程。
PHP 哀求每行代码按顺序运行,理论上会减慢您的程序速率,然而,有些人可能会争辩说 PHP 的同步特性使其更易于利用。

当您考虑 JavaScript 的非壅塞实现的好处时,我会说 JavaScript 在这方面优于 PHP。

JavaScript 与 PHP:集成

JavaScript 可以与许多不同的 Web 技能结合利用,包括 HTML、XML、Ajax,乃至带有 React 组件的 JSX。
借助 npm 和 Node.js 运行时,JavaScript 开拓职员可以轻松利用各种包。
Angular、React 和 Vue 等领先的前端框架和库都有自己的特性,这些特性乃至更多地基于这些集成。

另一方面,您可以将 PHP 与 HTML 集成,后者在 WordPress 和 Drupal 等 CMS 平台中盛行,此外,PHP 与传统的 LAMP 堆栈合营得很好。
与 SQL 的集成是通过MySQLi扩展实现的。

常日,JavaScript 和 PHP 都可以在任何带有 Web 浏览器的设备上运行,此外,JavaScript 具有 Node.js 运行时的后端功能。
有几个 npm 包和框架许可您构建可以在做事器端运行的 JavaScript API。

JavaScript 和 PHP 都可以适应不同的需求,但特殊是,JavaScript 可以在广泛的平台上很好地事情,不须要太多的额外事情。

如果您想在网页中利用 JSON 数据或注入的代码,设置 PHP 须要一个后端以及必要的标签来包装您的语句。

JavaScript 与 PHP:特性

JavaScript 和 PHP 供应了许多相同的内置功能,包括:

条件句循环转换,即字符串到整数等。
模块化,即功能和/或方法工具

PHP 和 JavaScript 之间的差异在于各自实现其行为的办法,由于 JavaScript 的非壅塞性子,您的程序可以具有低延迟并同时处理许多操作,此外,您可以利用 promises 乃至 RxJS observables 之类的东西来掌握行为。

JavaScript 还包含范围的观点,许可您掌握变量和数据点。

当您有一个包含许多模块或功能的大型项目时,Scope 非常强大。

让我们用一个例子来试试。
该helloWorld函数有一个局部浸染域变量message,该变量仅在该helloWorld函数中可用,当您考试测验访问函数外部的变量时,您将得到一个未定义的值,只要您尊重该变量的范围和利用,您就可以在多个地方利用相同的变量名,这是一个紧张上风JavaScript。

function helloWorld() { const message = "hello this is a locally scoped variable"; console.log(message);}// this will output "hello this is a locally scoped variable"helloWorld();// this will output an error saying that the message variable is not definedconsole.log(message);

对付 PHP,您常日利用$变量名并遵照与 JavaScript 类似的布局。
PHP 还许可您利用echo类似以下代码段的办法写出值:

function helloMessage(string $messageValue): string{ return 'hello '.$messageValue;}echo helloMessage('first message");JavaScript 与 PHP:协作

PHP 和 JavaScript 都有强大的社区支持。
开拓职员在开始或办理问题时可以参考无数在线博客和视频,所有紧张的 JavaScript 框架和库,包括 Angular、React 和 Vue,都是开源的,并且拥有定期更新其存储库的开拓团队。
PHP 也是开源的,很多 GitHub 项目都包含 PHP。

在开拓者履历方面,JavaScript 常日须要更多的背景知识。
要利用 JavaScript,您常日必须理解事宜循环以及其他 Web 技能(如 CSS 和 HTML)。

这些技能都是运行互联网的框架的一部分,因此,学习它们不一定是一项糟糕的投资,一旦您熟习了 JavaScript,您的项目就有了广泛的选择。

另一方面,PHP 要大略得多,它不仅是同步的,而且它的模型遵照更传统的后端技能,如 Java 和 C。
但是,您仍旧须要一个做事器或一些运行 PHP 阐明器的环境,常日还有 LAMP 堆栈的别的部分。

在协作方面,我会说在 JavaScript 项目上与团队互助更随意马虎,紧张是由于您用来完成事情的工具很少,随着在线编码平台和环境的涌现,这变得更加随意马虎,如果您想在 PHP 项目上进行协作,则必须先设置一个事情环境,然后才能运行任何代码。

哪一个更好?

JavaScript 和 PHP 都可以知足广泛的需求,PHP 仍旧如此广泛利用的事实表明,它对许多网站具有可爱的代价,辩论不应该是哪一种更好,而是哪一种更适宜您的需求。

如果您的团队已经在 LAMP 堆栈中事情,那么 PHP 可能最适宜您,如果您的团队不太理解 LAMP 堆栈并且后端履历也较少,那么 JavaScript 是您的最佳选择。

我个人喜好在项目中利用 JavaScript,我喜好我可以轻松地将技能从 React 转移到后端 Node.js API 的技能,直接在浏览器中运行代码也很棒,可以轻松地在不同平台上启动和运行 JavaScript。

许多开拓职员仍旧喜好 PHP,并为它找到了很好的用例。
这真的归结为您的个人团队和项目。

总结

在这篇文章中,我们对 PHP 与 JavaScript 进行了高层次的谈论,回顾了各自的优缺陷。