PHP 中的单引号 vs. 双引号
最近,我又听说 PHP 社区中有人仍然在谈论单引号和双引号,他们说使用单引号只是一种微优化,但如果你习惯了一直使用单引号,你会节省大量的 CPU 周期!为什么会这样呢?PHP 实现了字符串插值,在其中它搜索字符串中变量的使用情况,并将其替换为所用变量的值:$juice = "apple"; echo "They drank some $juice juice...
PHP 8.4: 弃用使用两个以上参数调用 session_set_save_handler()
Session 扩展中的 session_set_save_handler 函数设置了一系列用户级会话存储函数,以覆盖内置的基于文件的存储机制。当应用需要将用户会话存储在数据库、内存中,或在自动化测试期间覆盖会话存储机制时,这很有用。session_set_save_handler 函数支持两个重载签名,这仅适用于原生内置的 PHP 函数,并且只有少数 PH...
PHP 8.4: 新增 grapheme_str_split 函数
PHP 8.4 中的 Intl 扩展添加了一个名为 grapheme_str_split 的新函数,该函数将给定的字符串拆分为一个字素数组。字素是语言系统中有意义和功能的最小单位。相比之下,来自 Mbstring 扩展的 mb_str_split 函数具有相似的语义,但主要区别在于mb_str_split 函数将字符串拆分为 Unicode 多字节字符,而 ...
Composer Package Executor (CPX,Composer 包执行器) - 将 NPX 功能带到 Composer
厌倦了跨项目管理不同的开发工具?cpx(Composer Package Executor,Composer 包执行器)是 Liam Hammett 开发的一个便利的工具,可以简化你的工作流程。类似于 npm 的 npx,cpx 允许你在 Composer 包中运行任何命令,即使它没有安装在你的项目中。告别版本冲突和安装麻烦。cpx 负责幕后的包安装和更新,...
不要在服务器上运行 composer update
你习惯在服务器上使用 Composer 吗,最近有博主分享了一个有趣(但很重要的)关于理智使用 Composer 的观点。因此,假设因某种原因需要更新服务器上的 Composer 包,那么在服务器上运行 composer update 可能会出错。这将用新的包更新 composer.lock 文件,服务器上会留下一个脏的存储库。你陷入了这种困境,你可能不想从...
TemPHPest PHP 的 VSCode 扩展
TemPHPest 是 Visual Studio Code 的一个扩展,用于改进在 VS Code 中编写 PHP。由 Liam Hammett 创建,这个包添加了丰富的 PHP 功能,这将极大地增强编写 PHP 时的体验:TemPHPest 扩展特性用于文件创建的桩代码自动重命名Code Actions自动切换到 PHP 语言从单引号到双引号的自动插值Sn...
PHP 发布周期更新
PHP 核心团队已经通过了一份 RFC,其中概述了对当前活动和未来 PHP 版本的发布周期的一些重要更改。发布周期更新 RFC 要求对几项更改进行评论和投票,其中两项最重要的更改包括将每个 PHP 版本的主动维护期从一年延长到两年,并将主动支持和终止日期与日历年年底对齐。在此更改之前,每个主要的 PHP 版本(如 PHP 8.3、8.4、8.5 等)都会收到...
Codeigniter v4.5.0 版本发布
Codeigniter v4.5.0 发布了,附带许多增强特性!v4.5.0 是一个 minor 级的更新,它包含了增强及漏洞修复。它需要 PHP 8.1 或更高版本。不幸的是,其中也有许多破坏性更新。不过,许多用户都不会受到大部分破坏性更新的影响。所有这些更改都提供了更合适的行为。但是其中一些突破性的更改会破坏你的应用,所以请谨慎升级。请仔细阅读变更日志和...
带你深入了解 PHP 8.4 的属性钩子
属性挂钩允许你自定义类属性的 getter 和 setter 逻辑,而无需编写单独的 getter 和 setter 方法。这意味着你可以直接在属性声明中定义逻辑,这样你就可以直接访问属性(如 $user->firstName),而无调用方法(如 $user->getFirstName() 和 $user->setFirstName())。