PHP是对Hypertext Preprocessor的递归发挥,是一种面向网络开发的通用脚本语言。尽管有些人认为它已经过时了,但PHP仍然在整个互联网上使用,例如,包括Facebook、维基百科、Slack和Etsy等大公司。
随着JavaScript的兴起以及React、Angular和Vue等框架和库的扩散,许多新的开发者出于一些原因转向这些框架和库而不是PHP。在这篇文章中,我们将从特性、能力、性能和协作等方面讨论PHP和JavaScript。让我们开始吧!
PHP的历史
PHP最初是由Rasmus Lerdorf在1994年开发的,随着时间的推移,它变得越来越强大,从2011年开始遵循一个定期的发布周期,并引入了一些功能,如对类型、JSON、命令行工具和及时编译的支持。作为一种灵活的服务器端技术,PHP适用于各种各样的使用情况。
考虑到21世纪初JavaScript的状况,很清楚为什么PHP被如此广泛地采用。随着JavaScript作为一种语言的成熟,以及其他库和框架的引入,开发人员开始寻求用JavaScript代替PHP来满足他们的Web开发需求。
PHP提供了许多JavaScript开箱即用的功能,如处理条件、循环、类型、模块化和对象。PHP的一个主要障碍是,JavaScript的入门门槛往往较低。例如,你只需用一个浏览器和你最喜欢的文本编辑器就可以编写和运行JavaScript。然而,要使用PHP这种脚本语言,就必须使用一个解释器和一个运行时。
实现PHP
有几种不同的方法来实现PHP,但最流行的是Zend引擎。要使用Zend Engine,你需要一台运行PHP编译器的机器,然后你可以从一个托管地点为Zend Engine提供服务。
使用JavaScript,你可以用Node.js运行时处理你的前端和后端开发。前端项目直接在客户端的浏览器中运行JavaScript,这意味着JavaScript代码可以从CDN或静态文件位置提供,所以你不需要一个成熟的服务器来托管你的内容。
同样,使用npm,你的后端项目也会留下非常小的足迹;你可以在服务器上运行它们,也可以使用不同云供应商的无服务器功能。
JavaScript vs. PHP:性能
JavaScript和PHP可以执行类似的功能,但在引擎盖下,你会看到它们的真正区别。
JavaScript是事件驱动的,有一个事件循环,可以进行异步活动。与每行一次运行的JavaScript代码的同步运行不同,JavaScript可以一次运行多个部分的代码,防止JavaScript程序的主线程被阻塞。此外,像回调函数和事件循环这样的功能允许你在同一时间处理多个活动。
另一方面,PHP是同步的,但允许多线程。PHP要求每行代码按顺序运行,理论上会减慢你的程序。然而,有些人可能认为,PHP的同步性使它更容易操作。
当你考虑到JavaScript的非阻塞实现的好处时,我会说JavaScript在这方面胜过了PHP。
JavaScript vs. PHP:整合
JavaScript可以与许多不同的Web技术相结合,包括HTML、XML、Ajax,甚至与React组件的JSX。有了npm和Node.js运行时,JavaScript开发者就有了大量的软件包,唾手可得。领先的前端框架和库,如Angular、React和Vue,都有自己的功能,在这些整合的基础上更进一步。
另一方面,你可以将PHP与HTML整合,这在CMS平台如WordPress和Drupal中得到普及。此外,PHP与传统的LAMP堆栈配合良好。与SQL的集成是通过MySQLi扩展实现的。
一般来说,JavaScript和PHP都可以在任何有网络浏览器的设备上运行。此外,JavaScript还具有Node.js运行时的后端功能。有几个npm包和框架可以让你建立可以在服务器端运行的JavaScript APIs。
JavaScript和PHP都可以满足不同的需求,但特别是,JavaScript可以很好地与各种平台配合,而不需要太多的额外工作。
设置PHP需要一个后台,以及必要的标签来包装你的语句,如果你想在网页中使用JSON数据或注入的代码。
JavaScript与PHP。特点
JavaScript和PHP提供了许多相同的内置功能,包括。
- 条件式
- 循环
- 转换,即字符串到整数,等等。
- 模块化,即函数和/或方法
- 对象
PHP和JavaScript的区别在于各自实现其行为的方式。由于JavaScript的非阻塞性,你的程序可以有较低的延迟,并能同时处理许多操作。此外,你可以使用像承诺,甚至是RxJS的观察变量来控制行为。
JavaScript还包括范围的概念,允许你控制变量和数据点。
当你有一个有许多模块或函数的大项目时,范围是非常强大的。
让我们用一个例子来试试吧。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 vs. PHP:协作
PHP和JavaScript都有庞大的社区,并有强大的支持。在网上有无数的博客和视频,开发人员在开始工作或解决问题时可以参考。所有主要的JavaScript框架和库,包括Angular、React和Vue,都是开源的,并且有开发团队定期更新他们的存储库。PHP也是开源的,许多GitHub项目都包括PHP。
就开发人员的经验而言,JavaScript通常需要更多的背景知识。要使用JavaScript,你通常必须了解像事件循环这样的东西,以及其他网络技术,如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进行了高水平的讨论,回顾了各自的优势和劣势。我希望你喜欢这篇文章,并对两者有了更好的了解。在一天结束时,你选择的技术取决于对你和你的项目有用的东西。两者都是伟大的技术,为许多人提供了巨大的价值。
The postWhy don't people like PHP?appeared first onLogRocket Blog.