[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 /* 6 * The MIT License (MIT) 7 * 8 * Copyright (c) 2018-2020 Spomky-Labs 9 * 10 * This software may be modified and distributed under the terms 11 * of the MIT license. See the LICENSE file for details. 12 */ 13 14 namespace CBOR; 15 16 use ArrayIterator; 17 use function count; 18 use Countable; 19 use InvalidArgumentException; 20 use Iterator; 21 use IteratorAggregate; 22 23 final class InfiniteMapObject extends AbstractCBORObject implements Countable, IteratorAggregate 24 { 25 private const MAJOR_TYPE = 0b101; 26 private const ADDITIONAL_INFORMATION = 0b00011111; 27 28 /** 29 * @var MapItem[] 30 */ 31 private $data = []; 32 33 public function __construct() 34 { 35 parent::__construct(self::MAJOR_TYPE, self::ADDITIONAL_INFORMATION); 36 } 37 38 public function __toString(): string 39 { 40 $result = parent::__toString(); 41 foreach ($this->data as $object) { 42 $result .= (string) $object->getKey(); 43 $result .= (string) $object->getValue(); 44 } 45 $bin = hex2bin('FF'); 46 if (false === $bin) { 47 throw new InvalidArgumentException('Unable to convert the data'); 48 } 49 $result .= $bin; 50 51 return $result; 52 } 53 54 public function append(CBORObject $key, CBORObject $value): void 55 { 56 $this->data[] = new MapItem($key, $value); 57 } 58 59 public function count(): int 60 { 61 return count($this->data); 62 } 63 64 public function getIterator(): Iterator 65 { 66 return new ArrayIterator($this->data); 67 } 68 69 public function getNormalizedData(bool $ignoreTags = false): array 70 { 71 $result = []; 72 foreach ($this->data as $object) { 73 $result[$object->getKey()->getNormalizedData($ignoreTags)] = $object->getValue()->getNormalizedData($ignoreTags); 74 } 75 76 return $result; 77 } 78 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |