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