数据类型的统一对象表示。支持继承的实现。提供数组、对象、字符串、浮点数、整数和布尔值的包装类,以及队列和栈集合。

2.1.0 2023-06-21 19:59 UTC

This package is auto-updated.

Last update: 2024-09-12 20:51:40 UTC


README

Build Status Coverage Status

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

版本