draculaid/php8forphp7

该包的最新版本(v1.3.0)没有提供许可证信息。

Php8forPhp7 - PHP 8 函数和类,用于 PHP 7.4。模拟枚举的类

v1.3.0 2023-08-21 19:32 UTC

This package is auto-updated.

Last update: 2024-09-21 22:05:05 UTC


README

文档 | 示例

Php8forPhp7 包含 PHP8 的类和函数。此外,该库还包含创建与 PHP8 枚举使用方式相似的枚举类的功能

该库无需任何额外的包即可运行。如果您的项目不使用 composer 作为包管理器或您想在代码中实施该库,只需简单地从 master 分支复制 src 目录的内容即可

安装

使用包管理器安装 (packagist.org)

composer require draculaid/php8forphp7

更新包

composer update draculaid/php8forphp7

您还可以完全复制 src 目录的内容,Php8forPhp7 包含其运行所需的所有内容(即没有外部依赖)

目录树

  • documentation-ru 文档,进入目录
  • examples-ru 示例,进入目录
  • src/functions.php 包含所有函数的声明
  • src/interfaces.php 包含所有接口的声明
  • src/functions 包含函数的定义(每个文件定义一个函数)
  • src/Classes 包含 PHP8 的类
  • src/Enums 包含创建类似于 PHP8 枚举的类所需的所有内容
  • tests 包含测试库所需的所有内容,更多信息

src/functionssrc/functions.php 不仅在全局命名空间中声明(如果之前未声明)了函数,还在 DraculAid\Php8forPhp7 命名空间中声明了“别名”。即将有两个 array_is_list() 函数:一个是 array_is_list(),另一个是 \DraculAid\Php8forPhp7::array_is_list()。其中

  • array_is_list() 将会在未定义的情况下定义(由其他库或您使用 PHP8 定义)
  • 如果定义了 array_is_list(),它将调用 \DraculAid\Php8forPhp7::array_is_list()
  • \DraculAid\Php8forPhp7::array_is_list() 总是可用,无论您使用的是哪个 PHP 版本

FunctionsTest.php 包含一个用于验证复合类型数据(例如 string|arrayA&B)的函数类 更多信息在文档中

LoaderPhp8Lib.php 包含一个简化加载所需功能的类,更多信息在文档中

实现

枚举,更确切地说,是创建与 PHP8 枚举最相似的类的功能,请参阅抽象类 \DraculAid\Php8forPhp\Enums\AbstractEnum。更多信息 在文档中

函数

  • enum_exists() 指定的类是否是枚举
  • array_is_list() 数组是否是列表
  • str_contains() 字符串是否包含子字符串
  • str_starts_with() 字符串是否以子串开头
  • str_ends_with() 字符串是否以子串结尾
  • get_debug_type() 返回数据类型名称
  • get_resource_id() 返回资源的整型表示

  • WeakMap - "数组",使用对象作为键,与真正的 WeakMap 不同,它增加对象引用计数器