3.3.1 2022-06-01 12:07 UTC

This package is auto-updated.

Last update: 2024-08-29 04:25:43 UTC


README

Latest Stable Version Total Downloads License

stdlib

PHP 标准库。

该库包含许多帮助类,用于操作多字节字符串和处理各种类型的数组。

安装

建议您使用 Composer 安装 Stdlib。

$ composer require blackbonjour/stdlib

这将安装 Stdlib 及所有必需的依赖项。Stdlib 需要 PHP 7.4 或更高版本。

使用方法

以下是一些该库能做什么的示例。

语言

使用 StdString,您有一个强大的字符串操作工具。许多函数来自其他编程语言,如 Java。

$string      = new StdString('My vehicle has %d wheels.');
$translation = StdString::format($string, 4);

echo $translation; // My vehicle has 4 wheels.

StdString 也兼容多字节。

$format      = '"%s" means "%s".';
$translation = StdString::format($format, 'Привет', new StdString('Hello'));

echo $translation; // "Привет" means "Hello".

StdString 实例可以从字符串和 Character[] 创建。

StdString 也实现了 ArrayAccess,这使得我们可以像处理常规字符串一样处理 StdString 实例。

$string = new StdString('FooBar');

echo $string[4]; // a

工具类

工具类包含用于简化数组和处理断言的类。

断言

使用 Assert::empty(),您可以一次性检查多个值是否为空。此方法与 PHP 内置函数 empty() 完全相同。

var_dump(Assert::empty(null, 0, '', [])); // true
var_dump(Assert::empty(null, 1, 'FooBar', [])); // false

相反,使用 Assert::notEmpty 检查所有值是否不为空。

var_dump(Assert::notEmpty(123, 'FooBar', [123])); // true
var_dump(Assert::notEmpty(123, 'FooBar', [])); // false

使用 Assert::typeOf() 检查多个值是否为指定的类型或指定类的实例。此方法应像 PHP 本身一样反应。因此,如果值不是指定的类型或类,将抛出 TypeError 异常。如果您不希望这种行为,可以使用方法 Assert::validate 代替。该方法将返回 true 如果所有值都是指定类型或类的,否则返回 false

$allowedTypes = [Assert::TYPE_INTEGER, Assert::TYPE_FLOAT];

var_dump(Assert::validate($types, 123, 456.7));

HashMap

使用 HashMap,现在可以拥有具有对象作为键的数组。

$hashMap = new HashMap;
$hashMap->put(new StdString('FooBar'), ['foo' => 'bar']);

var_dump($hashMap->key() instanceof StdString); // Returns `true`

$hashMap->put(new stdClass, new StdString('NotFooBar'));

foreach ($hashMap as $key => $value) {
    echo StdString::format('%s => %s' . PHP_EOL, gettype($key), gettype($value));
}

/*
 * Output:
 *
 * object => array
 * object => object
 */