PHP 是超文本预处理器、一种面向 Web 研发的通用脚本语言,尽管有些人认为 PHP 已然过时,但 PHP 仍在互联网上运用,例如 Facebook、维基百科、Slack 和 Etsy 等大机构。
随着 JavaScript 的兴起以及 React、Angular 和 Vue 等框架和库的激增,许多新研发人员出于多种原由正在转向这些而不是 PHP,受此Twitter 线程的启发,咱们将在特性、功能、性能和协作方面讨论 PHP 和 JavaScript。
PHP 的历史
PHP最初由Rasmus Lerdorf 于 1994年研发,随着时间的推移变得更加健壮,遵循 2011 年的定时发布周期并引入了诸如支持类型、JSON、命令行实用程序和即时编译等功能,做为一种灵活的服务器端技术,PHP 适用于多种用例。
JavaScript 在 2000 年代初期成型,然则此时PHP已然被广泛采用,随着 JavaScript 做为一种语言的成熟以及其他库和框架的引入,研发人员起始寻求用 JavaScript 代替 PHP 来满足她们的 Web 研发需要。
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 defined
console.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 进行了高层次的讨论,回顾了各自的优缺点。
|