blackbonjour / stdlib
PHP 标准库
3.3.1
2022-06-01 12:07 UTC
Requires
- php: ^8.0
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: 9.*
README
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 */