20250628
Бета 1.1
This commit is contained in:
119
sources/traits/JsonReWriter/JsonReWriterReadTrait.php
Normal file
119
sources/traits/JsonReWriter/JsonReWriterReadTrait.php
Normal file
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
|
||||
namespace goodboyalex\php_components_pack\traits\JsonReWriter;
|
||||
|
||||
/**
|
||||
* Часть кода класса JsonReWriter, отвечающая за методы чтения ключей и значений JSON.
|
||||
*
|
||||
* @author Александр Бабаев
|
||||
* @package php_components_pack
|
||||
* @version 1.0
|
||||
* @since 1.1.0
|
||||
*/
|
||||
trait JsonReWriterReadTrait
|
||||
{
|
||||
/**
|
||||
* Читает значение ключа JSON как целое число.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param int $default Значение по умолчанию.
|
||||
*
|
||||
* @return int Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadInt (string $key, int $default = 0): int
|
||||
{
|
||||
return (int)$this->Read($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param mixed $default Значение по умолчанию.
|
||||
*
|
||||
* @return mixed Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function Read (string $key, mixed $default = null): mixed
|
||||
{
|
||||
if (!$this->IsKeyExists($key))
|
||||
return $default;
|
||||
|
||||
$keys = $this->ParseKey($key);
|
||||
|
||||
// Получаем текущий массив данных
|
||||
$current = $this->JsonData;
|
||||
|
||||
// Для каждого ключа до предпоследнего
|
||||
for ($i = 0; $i < count($keys) - 1; $i++)
|
||||
// - переходим ко вложенному массиву
|
||||
$current = &$current[$keys[$i]];
|
||||
|
||||
// Возвращаем значение последнего ключа и если его нет, то возвращаем значение по умолчанию
|
||||
return $current[$keys[count($keys) - 1]] ?? $default;
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON как вещественное число.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param float $default Значение по умолчанию.
|
||||
*
|
||||
* @return float Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadFloat (string $key, float $default = 0.0): float
|
||||
{
|
||||
return (float)$this->Read($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON как логическое значение.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param bool $default Значение по умолчанию.
|
||||
*
|
||||
* @return bool Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadBool (string $key, bool $default = false): bool
|
||||
{
|
||||
return (bool)$this->Read($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON как массив.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param array $default Значение по умолчанию.
|
||||
*
|
||||
* @return array Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadArray (string $key, array $default = []): array
|
||||
{
|
||||
return (array)$this->Read($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON как объект.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param object $default Значение по умолчанию.
|
||||
*
|
||||
* @return object Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadObject (string $key, object $default): object
|
||||
{
|
||||
return (object)$this->Read($key, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Читает значение ключа JSON как строку.
|
||||
*
|
||||
* @param string $key Ключ JSON.
|
||||
* @param string $default Значение по умолчанию.
|
||||
*
|
||||
* @return string Значение ключа JSON или значение по умолчанию.
|
||||
*/
|
||||
public function ReadString (string $key, string $default = ""): string
|
||||
{
|
||||
return (string)$this->Read($key, $default);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user