phrity / o
数据类型的统一对象表示。支持继承的实现。提供数组、对象、字符串、浮点数、整数和布尔值的包装类,以及队列和栈集合。
2.1.0
2023-06-21 19:59 UTC
Requires
- php: ^8.0
- phrity/comparison: ^1.2
Requires (Dev)
- php-coveralls/php-coveralls: ^2.4
- phpunit/phpunit: ^9.0|^10.0
- squizlabs/php_codesniffer: ^3.5
README
O
数据类型的统一对象表示。
包含多个特性,提供接口实现和其他功能。这些特性可以包含在任何需要支持功能的自定义类中。
还提供数组、对象、字符串、浮点数、整数和布尔值的现成包装类,以及队列和栈集合。支持继承的实现。
安装
使用 Composer 安装;
composer require phrity/o
按来源类型内容
工厂
工厂类将标量、数组和对像转换为相应的“O”实例。
$factory = new Factory(); $instance = $factory->convert([1, 2, 3]); // -> Arr instance
类
以下是一些现成的类。
特性
特性按来源类型定义。以下特性可用。
示例
以下类的简要示例。
标量类型
$str = new Str('hello world'); $str(); // Getter $str('world'); // Setter $int = new Integer(1234); $int(); // Getter $int(5678); // Setter $num = new Number(12.34); $num(); // Getter $num(56.78); // Setter $bool = new Boolean(true); $bool(); // Getter $bool(false); // Setter
复杂类型
$array = new Arr([1, 2, 3]); $array[] = 7; // ArrayAccess support count($array); // Countable support foreach ($array as $key => $value) {} // Iterator support $array->equals(new Arr([2, 3, 4])); // Comparison support $object = new Obj(['a' => 1, 'b' => 2, 'c' => 3]); $object->b = 5; // Property access $object->equals(new Obj(['c' => 1, 'd' => 2])); // Comparison support
集合类型
$queue = new Queue([1, 2, 3]); $queue->enqueue(4); $queue->dequeue(); count($queue); // Countable support foreach ($queue as $key => $item) {} // Consuming iterator support $queue->equals(new Queue([2, 3, 4])); // Comparison support $stack = new Stack([1, 2, 3]); $stack->push(4); $stack->pop(); count($stack); // Countable support foreach ($stack as $key => $item) {} // Consuming iterator support $stack->equals(new Stack([2, 3, 4])); // Comparison support