php 录入格式 官方担心这在放弃PHP6之后会引起混乱的混乱

PHP 开发人员 Brent 发表了一篇文章,详细介绍了 2019 年的 PHP。

Brent 承认 PHP 仍然存在一些问题,比如方法签名不一致,很多核心功能的配置设置不一致,这仍然令人困惑,但根据自己的开发经验,他认为 PHP 是 web 的绝佳选择开发,使用 PHP,他可以创建可靠、可维护和高质量的应用程序,他和他的客户对最终结果感到满意。

在文章中,Brent 专注于 PHP 多年来的良好发展,并通过几点说明“PHP 不再是十年前的糟糕语言”:

欢迎关注作者,优质文章在这里等你。

PHP 正在积极开发中,每年都会发布一个新版本

目前的PHP版本是去年12月发布的7.3,预计今年年底发布7.4,下一个是PHP8.0 7.4 A 版本之后的版本。

图片[1]-php 录入格式 官方担心这在放弃PHP6之后会引起混乱的混乱-4747i站长资讯

从5.X时代开始php 录入格式,核心团队希望每年发布一个新版本。他们在过去四年中成功地保持了这样的发布周期。通常每个新版本都会获得两年的官方主动支持,之后一年只会提供安全修复。目的是激励 PHP 开发人员尽可能地保持最新状态。

图片[2]-php 录入格式 官方担心这在放弃PHP6之后会引起混乱的混乱-4747i站长资讯

看上表,你可能会发现版本号从5跳到了7。那么PHP 6去哪儿了?

其实早在 2005 年,PHP 社区就发起了 PHP 6,但由于实施困难,该项目最终夭折。 PHP 官方并未发布 PHP 6 GA,PHP 6 于 2010 年被取消。虽然 PHP 6 项目被取消,但其大量实现的功能被集成到 PHP 5.X 中,包括 OOP 的改进,这使得PHP 从面向过程到面向对象的飞跃。

PHP 6 被取消了,但是之前这个主要版本的研发是在 PHP 6 的名义下进行的,所以很多参考资料和书籍都使用“PHP 6”来指代这个版本。官方担心这会在放弃 PHP 6 后引起混乱,所以干脆跳过了 PHP 6.X 版本号,直接从 5 跳到了 7。

PHP 5 后性能持续提升

PHP 7.0,PHP核心部分完全重写,带来最新的Zend引擎,PHP性能提升两到三倍。

作者指出PHP的性能从7.0开始就一直在提升。与其他语言的 Web 框架相比,PHP Web 应用程序在某些情况下的性能要好得多。但他也表示:“当然 PHP 框架不会比 C 和 Rust 好,但比 Rails 或多或少,并具有可比性。”

由非常活跃的框架、包和平台组成的语言生态

说到PHP框架,不得不说,但作者说绝对不代表现在的PHP生态:“PHP框架已经不只是了。”

目前,PHP 中有两个主要的 Web 应用程序开发框架:and,以及 Zend、Yii、Cake 和 Code,以及许多较小的框架。

两者都拥有庞大的软件包和软件生态系统,包括管理面板和 CRM、独立软件包、CI、分析器、Web 服务器、队列管理器和支付集成等。

此外,PHP异步框架也是近几年兴起的。 Amp 和 Amp 是最好的。它们是用 PHP 或其他语言编写的框架和服务器,用于运行真正的异步 PHP。

作者认为,衡量 PHP 生态系统当前状态的一种方法是查看此 PHP 主包存储库中的数据。通过下面的趋势图,我们可以发现软件包数量呈指数级增长,目前有223 217个软件包进入,总安装量已经达到14 827 204 847。PHP生态不再像之前。

图片[3]-php 录入格式 官方担心这在放弃PHP6之后会引起混乱的混乱-4747i站长资讯

各种版本的可用软件包数量

图片[4]-php 录入格式 官方担心这在放弃PHP6之后会引起混乱的混乱-4747i站长资讯

图片[5]-php 录入格式 官方担心这在放弃PHP6之后会引起混乱的混乱-4747i站长资讯

每月安装的软件包数量

图片[6]-php 录入格式 官方担心这在放弃PHP6之后会引起混乱的混乱-4747i站长资讯

此外,您还可以查看有关 PHP 使用情况统计和市场定位的最新数据:

PHP 在不断发展,过去几年中添加了许多新功能

虽然 async 和 await 这两个要求很高的特性还没有实现,但 PHP 的新特性近年来不断出现,语言本身也得到了多方面的改进。

下面列出了一些备受关注的 PHP 新功能:

短闭包,也称为箭头函数,是一种在 PHP 中编写较短函数的方法。在将闭包传递给诸如 or 之类的函数时,它可以发挥巨大的作用。

// A collection of Post objects $posts = [/* … */];
$ids = array_map(fn($post) => $post->id, $posts);

空合并运算符,类似于三元运算符,但左侧的操作数的行为类似于 isset 而不是仅使用其布尔值。这使得这个运算符对数组特别有用。还可以在未设置变量时分配一个默认值。

$undefined ?? 'fallback'; // 'fallback'
$unassigned;
$unassigned ?? 'fallback'; // 'fallback'
$assigned = 'foo';
$assigned ?? 'fallback'; // 'foo'
'' ?? 'fallback'; // ''
'foo' ?? 'fallback'; // 'foo'
'0' ?? 'fallback'; // '0'
0 ?? 'fallback'; // 0
false ?? 'fallback'; // false

Trait 是一种代码复用机制,可以减少单继承的一些局限性。与类结合的语义定义了一种降低复杂性并避免与多重继承相关的典型问题的方法。

Trait 类似于类,但它仅用于以细粒度且一致的方式对函数进行分组。它是对传统继承的补充,可以实现行为的横向组合。类成员的应用不需要继承。


属性类型,类变量可以定义类型,如:

class A
{
 public string $name;
 
 public Foo $foo;
}

扩展运算符,这是一种新的语法,可以直接在调用中解压参数,如:

call_user_func_array([$db, 'query'], array_merge(array($query), $params));

直接使用新语法扩展数组$:

$db->query($query, ...$params);

JIT 是一种编译器策略,将代码表示为中间状态,在运行时将其转换为依赖于体系结构的机器代码,并立即执行。在 PHP 中,这意味着 JIT 将 Zend VM 生成的指令视为中间表示,并在依赖于架构的机器代码中执行它们。也就是说,承载代码的不再是Zend VM,而是底层的CPU。 .

,外部函数接口,允许从纯脚本语言调用C函数和使用C数据类型,从而更有效地开发“系统代码”。对于 PHP,FFI 开辟了一种使用纯 PHP 编写 PHP 扩展并绑定到 C 库的方式。

匿名类php 录入格式,用于创建简单的一次性对象:

setLogger(new Logger());
// PHP 7+ code
$util->setLogger(new class {
 public function log($msg)
 {
 echo $msg;
 }
});

文章来源:http://www.toutiao.com/a6691085539300344327/

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享