PHP 8.3 新特性: 动态访问类常量及 Enum 成员
PHP 8.3 以后支持使用变量名访问类常数以及Enum 对象。class MyClass { public const MY_CONST = 42; } $constName = 'MY_CONST'; echo MyClass::{$constName};PHP 8.3 之前,ClassName::{$varName} 语法获取类常量是不允许...
PHP 8.3 功能: json_validate 函数
PHP 8.3 添加了一个名为 json_validate 的新函数,用来返回true或false以判断给定的字符串是否是有效的JSON字符串。PHP 8.3 之前,判断给定字符串是不是有效的 JSON 字符串的唯一方法是,尝试解码该字符串,看看是否会产生错误。新的 json_validate 函数底层使用了同一个 JSON 解析器,不过内存使用量更少且像j...
如何延长老版PHP应用的生命周期
PHP 正在稳步发展。每年都会有一个主要的新版本,其中包含新功能、性能改进、相当多的弃用,甚至语法更改。PHP核心开发人员维护两个最新的PHP版本,其中包括活动的bug修复和安全修复,然后是安全修复。这实际上意味着每个主要的PHP版本最多支持三年,现有的PHP应用就要被迫升级。虽然更新现有的PHP应用是理想和推荐的方法,但不可避免的是,有些应用程序/网...
Laravel 最佳实践
内容单一职责原则保持控制器的简洁使用自定义Request类来进行验证业务代码要放到服务层中DRY原则 不要重复自己使用ORM而不是纯sql语句,使用集合而不是数组集中处理数据不要在模板中查询,尽量使用惰性加载注释你的代码,但是更优雅的做法是使用描述性的语言来编写你的代码不要把 JS 和 CSS 放到 Blade 模板中,也不要把任何 HTML 代码放到 PH...
Workerman 是什么?
Workerman是一款纯 PHP 开发的开源高性能的 PHP 应用容器。Workerman 不是重复造轮子,它不是一个 MVC 框架,而是一个更底层更通用的服务框架,你可以用它开发 tcp 代理、梯子代理、做游戏服务器、邮件服务器、ftp 服务器、甚至开发一个 php 版本的 redis、php 版本的数据库、php 版本的 nginx、php 版本的php-fpm 等
PHP 8.2: 新增 error_log_mode INI 设置项用来设置错误日志文件权限
PHP 8.2 引入新的 INI 指令叫做 error_log_mode,可用作配置 PHP 错误日志文件的文件权限(用 error_log 指令配置)。在 PHP8.2之前, PHP 将文件权限自动设置为 0644(相当于 rw-r--r--,即owner可读写,group和public 只读)。对于新增的 error_log_mode 指令,0644 仍...
PHP 8.2: str_split 对空字符串返回空数组
str_split 函数将一个指定的字符串拆分成数组,使每个值都包含给定数量的字节。Mbstring 扩展提供了对应的 mb_str_split 函数,使多字节字符的字符串可以分解成数组。在 PHP 8.2 之前,str_split 函数在碰到空字符串时会错误地返回包含空字符串("")的数组。str_split('') === [""];这一行为没有记入文档...
PHP 8.2: 析取范式 (DNF) 类型
PHP 8.2 引入了对联合类型(PHP 8.0) 和相交类型(PHP8.1)二者联合的类型支持。最通用的情景是声明一个可接受相交类型或 null 的类型(比如,nullable intersection type)。
PHP 8.2 正式发布
2022年12月8日,PHP 8.2 正式发布了。PHP 8.2 是PHP语言现代化旅程中一个重要的里程碑。除了一些重要的新特性和改进之外,PHP 8.2 还通过弃用对类的动态属性支持、特定非最优配置值时发出警告,以及修复一些旧版 PHP 中对数组排序和特定类型字符串转换/编码操作产生影响的行为,来提升语言效率。此次更新带来了许多改进和新特性,诸如:只读类析...