waArrayObject

Хранение значений с доступом к ним, как в массивах

Содержание...

Класс позволяет организовать иерархическое хранение значений с равнозначным доступом к ним как к элементам многомерных массивов или объектов, содержащих коллекции объектов.

Примеры

// аналогично: $a['b'] = 100;
$a->b = 100;

// аналогично: echo $a['b'];
echo $a->b;

// аналогично: $a['b']['c'] = 200;
$a->b->c = 200;

// аналогично: echo $a['b']['c'];
echo $a->b->c;

// свойства, в которых есть вложенные свойства, — это экземпляры класса waArrayObject
$a->b->c = 200;
wa_dump($a->b); // waArrayObject object

Методы

  • __construct

    Конструктор класса.

  • setAll

    Сохраняет указанные значения в свойства объекта.

  • count

    Возвращает количество элементов 1-го уровня.

  • toArray

    Возвращает значения свойств объекта в виде ассоциативного массива.

  • clear

    Удаляет все свойства объекта.

  • keyExists

    Проверяет наличие в объекте свойства 1-го уровня с указанным именем.

  • ifset

    Возвращает значение свойства 1-го уровня с указанным именем либо значение по умолчанию.

  • ifempty

    Возвращает непустое значение свойства 1-го уровня с указанным именем либо значение по умолчанию.

public function __construct ($data = [])

Конструктор класса, который инициализирует значения свойств объекта с помощью метода setAll().

Параметры

  • $data

    Значение, реализующее интерфейс Traversable.

Пример

$object = new waArrayObject([
    'part1' => 'Hello',
    'part2' => 'world!',
]);

echo $object->part1 . ' ' . $object->part2;

Результат

Hello world!

public function setAll ($data)

Сохраняет элементы указанного значения, реализующего интерфейс Traversable, в свойства объекта.

Параметры

  • $data

    Значение, реализующее интерфейс Traversable.

Пример

$object = new waArrayObject();

$object->setAll([
    'part1' => 'Hello',
    'part2' => 'world!',
]);

echo $object->part1 . ' ' . $object->part2;

Результат

Hello world!

public function count()

Возвращает количество элементов 1-го уровня.

Пример

$object = new waArrayObject([
    'foo' => 100,
    'bar' => [
        'test' => 200
    ],
]);

echo $object->count();

Результат

2

public function toArray()

Возвращает значения свойств объекта в виде ассоциативного массива.

Пример

$object = new waArrayObject([
    'foo' => 100,
    'bar' => [
        'qwerty' => 200
    ],
]);

wa_dump($object->toArray());

Результат

[
    'foo' => 100,
    'bar' => [
      'qwerty' => 200,
    ],
]

public function clear()

Удаляет все свойства объекта.

Пример

$object = new waArrayObject([
    'foo' => 100,
    'bar' => [
        'qwerty' => 200
    ],
]);

$object->clear();
wa_dump($object->toArray());

Результат

[]

public function keyExists ($name)

Проверяет наличие в объекте свойства 1-го уровня с указанным именем.

Параметры

  • $name

    Имя свойства 1-го уровня.

Пример

$object = new waArrayObject([
    'foo' => null,
    'bar' => false,
]);

wa_dump($object->keyExists('foo'));

Результат

true

public function ifset ($name, $default = null)

Возвращает значение свойства 1-го уровня с указанным именем либо значение по умолчанию.

Параметры

  • $name

    Имя свойства 1-го уровня.

  • $default

    Значение по умолчанию. Возвращается методом, если свойство 1-го уровня с именем, указанным в параметре $name, не заполнено значением, отличным от null.

Пример

$object = new waArrayObject([
    'foo' => 100,
    'bar' => null,
]);

wa_dump($object->ifset('bar', 200));

Результат

200

public function ifempty ($name, $default = null)

Возвращает непустое значение свойства 1-го уровня с указанным именем либо значение по умолчанию.

Параметры

  • $name

    Имя свойства 1-го уровня.

  • $default

    Значение по умолчанию. Возвращается методом, если свойство 1-го уровня с именем, указанным в параметре $name, не заполнено значением, конвертируемым в true.

Пример

$object = new waArrayObject([
    'foo' => 100,
    'bar' => 0,
]);

wa_dump($object->ifempty('bar', 200));

Результат

200