标签: PHP
编程

PHP 8.0: 类魔术方法签名严格执行

454 2023-09-09 11:48:00

PHP 中的魔术方法是特殊的类方法名称,如果声明了这些名称,就会为类带来特殊的功能。PHP 中有几种神奇的方法 __construct() 魔术方法在用 new Foo() 模式实例化新的类对象时调用,__get() 方法在请求不存在的类属性时调用,___toString() 魔术方法在类对象被强制为字符串时调用,依此类推。尽管所有这...

详情...
编程

PHP 8.1: Serializable 接口弃用

588 2023-09-08 11:45:00

PHP 支持 serialize 和 unserialize 函数用于将类对象、数组及其他标量数据转换为序列化字符串格式,及从序列化字符串中重建。PHP 类可以提供他们自己的序列化实现。比如,类可以排除特定敏感信息,不将其添加到序列化字符串中,或者类可以从序列化文本中获取的服务器URL重新建立与远程服务器的连接。PHP 类有三种方式提供自定义序列化逻辑:...

详情...
编程

如何在 Ubuntu 18.04 上安装 OpenCart

429 2023-09-06 00:14:00

通过本教程你将学会如何在 Ubuntu 18.04 服务器上安装 OpenCart。需求 :1.域名2.Ubuntu 上安装 Nginx 服务器3.SSL 证书。更新系统软件包至最新版,并使用下面命令进行安装:sudo apt update && sudo apt install unzip 步骤 1 - 创建 MySQL ...

详情...
编程

PHP 8.1: MySQLi: 执行时绑定

441 2023-08-22 14:55:00

PHP 8.1 起,MySQLi 扩展的 mysqli_stmt_execute 函数及 mysqli_stmt::execute 方法(别名) 接收一个 $params 参数。如果传入参数,传入的值会被当作字符串绑定到语句中。此前,参数化的 SQL 查询需要调用 bind_param 显式绑定变量:$statement = $db->prepare(...)

详情...
编程

PHP 8.1: 显式八进制数字表示法

495 2023-08-20 13:06:00

PHP 支持多种数字系统,包括默认的十进制数字、二进制数字、八进制数字及十六进制数。十进制之外的数字系统都有它们自己的前缀:十六进制 0x 前缀: e.g. 0x11 = 17二进制 0b 前缀: e.g. 0b11 = 3八进制 0 前缀: e.g. 011 = 9PHP 8.1 之后,八进制也支持 0o(零及字母o)前缀,这意味着八进制字面量可以更明显及...

详情...
编程

PHP 8.1: 相交类型(Intersection Types)

504 2023-08-18 11:28:00

PHP 8.1 支持相交类型(Intersection Types),它允许为参数、属性或返回类型声明类型,并强制值属于所有声明的类/接口类型。这与允许任何已声明类型的联合类型(Union Type)相反。PHP 8.1的交集类型实现被称为“纯”交集类型,因为不允许在同一声明中组合联合类型和交集类型。交集类型是通过使用 & 将类/接口名称组合来声明的...

详情...
编程

PHP 8.1 新特性解析: 新增 #[ReturnTypeWillChange] 属性

428 2023-08-17 11:20:00

#[\ReturnTypeWillChange] 是 PHP 8.1 引入的新特性,这表示不匹配的暂定返回类型不应该发出弃用通知。PHP 8.0 之前的版本将属性语法解析为代码注释,不会导致任何语法错误。在类方法中添加 #[\ReturnTypeWillChange] 属性不会导致任何问题,但在PHP 8.1中可以忽略了弃用通知。这是添加到 PHP 的第一个...

详情...
编程

禁用 Composer script 处理的超时时间

396 2023-08-16 20:08:00

对于我项目中的重复过程,我通常使用 Composer 的 script 功能来简化我自己和我的团队运行脚本和执行二进制文件的过程。我经常遇到的一件事是长时间运行的进程,如观察者脚本或后台进程,超过了 Composer 默认的300秒脚本超时。我最常看到的一个例子是大型测试套件,它可能需要5分钟以上的时间来运行,通常是端到端测试。{ "scripts"...

详情...
编程

创建自己的 PHP 服务容器 - 最小容器

383 2023-08-14 18:54:00

本文将介绍 PHP 中是如何创建自己服务容器,用于依赖注入。我将从最简单的 PSR-11 容器,并逐步添加各种特性直至我们有一个强大、通用的容器。"服务容器(service container)" 是什么?服务容器是一个 PHP 对象,用于负责其他对象的实例化。我们告诉容器如何初始化对象,然后在项目需要它的实例时,再去请求。PSR-11 是什么?PSR-11...

详情...
编程

创建自己的 PHP 模板引擎 - 渲染 & Echo

380 2023-08-12 17:08:00

我们来创建一个小型 PHP 模板引擎!本文主要关注模板的渲染及 echo 输出能被 htmlspecialchars() 转义的数据。在我们开始编写代码之前,我们需要注意任何编程项目中最重要的部分——为项目命名。我将称之为“Stencil”。模板本身都将是纯PHP。我们不会创建任何像 Twig 或 Blade 这样的特殊语法,我们将只关注模板功能。我们将从创...

详情...