annotate vendor/zendframework/zend-stdlib/src/Parameters.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 7a779792577d
children
rev   line source
Chris@0 1 <?php
Chris@0 2 /**
Chris@0 3 * Zend Framework (http://framework.zend.com/)
Chris@0 4 *
Chris@0 5 * @link http://github.com/zendframework/zf2 for the canonical source repository
Chris@0 6 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
Chris@0 7 * @license http://framework.zend.com/license/new-bsd New BSD License
Chris@0 8 */
Chris@0 9
Chris@0 10 namespace Zend\Stdlib;
Chris@0 11
Chris@0 12 use ArrayObject as PhpArrayObject;
Chris@0 13
Chris@0 14 class Parameters extends PhpArrayObject implements ParametersInterface
Chris@0 15 {
Chris@0 16 /**
Chris@0 17 * Constructor
Chris@0 18 *
Chris@0 19 * Enforces that we have an array, and enforces parameter access to array
Chris@0 20 * elements.
Chris@0 21 *
Chris@0 22 * @param array $values
Chris@0 23 */
Chris@0 24 public function __construct(array $values = null)
Chris@0 25 {
Chris@0 26 if (null === $values) {
Chris@0 27 $values = [];
Chris@0 28 }
Chris@0 29 parent::__construct($values, ArrayObject::ARRAY_AS_PROPS);
Chris@0 30 }
Chris@0 31
Chris@0 32 /**
Chris@0 33 * Populate from native PHP array
Chris@0 34 *
Chris@0 35 * @param array $values
Chris@0 36 * @return void
Chris@0 37 */
Chris@0 38 public function fromArray(array $values)
Chris@0 39 {
Chris@0 40 $this->exchangeArray($values);
Chris@0 41 }
Chris@0 42
Chris@0 43 /**
Chris@0 44 * Populate from query string
Chris@0 45 *
Chris@0 46 * @param string $string
Chris@0 47 * @return void
Chris@0 48 */
Chris@0 49 public function fromString($string)
Chris@0 50 {
Chris@0 51 $array = [];
Chris@0 52 parse_str($string, $array);
Chris@0 53 $this->fromArray($array);
Chris@0 54 }
Chris@0 55
Chris@0 56 /**
Chris@0 57 * Serialize to native PHP array
Chris@0 58 *
Chris@0 59 * @return array
Chris@0 60 */
Chris@0 61 public function toArray()
Chris@0 62 {
Chris@0 63 return $this->getArrayCopy();
Chris@0 64 }
Chris@0 65
Chris@0 66 /**
Chris@0 67 * Serialize to query string
Chris@0 68 *
Chris@0 69 * @return string
Chris@0 70 */
Chris@0 71 public function toString()
Chris@0 72 {
Chris@12 73 return http_build_query($this->toArray());
Chris@0 74 }
Chris@0 75
Chris@0 76 /**
Chris@0 77 * Retrieve by key
Chris@0 78 *
Chris@0 79 * Returns null if the key does not exist.
Chris@0 80 *
Chris@0 81 * @param string $name
Chris@0 82 * @return mixed
Chris@0 83 */
Chris@0 84 public function offsetGet($name)
Chris@0 85 {
Chris@0 86 if ($this->offsetExists($name)) {
Chris@0 87 return parent::offsetGet($name);
Chris@0 88 }
Chris@0 89 return;
Chris@0 90 }
Chris@0 91
Chris@0 92 /**
Chris@0 93 * @param string $name
Chris@0 94 * @param mixed $default optional default value
Chris@0 95 * @return mixed
Chris@0 96 */
Chris@0 97 public function get($name, $default = null)
Chris@0 98 {
Chris@0 99 if ($this->offsetExists($name)) {
Chris@0 100 return parent::offsetGet($name);
Chris@0 101 }
Chris@0 102 return $default;
Chris@0 103 }
Chris@0 104
Chris@0 105 /**
Chris@0 106 * @param string $name
Chris@0 107 * @param mixed $value
Chris@0 108 * @return Parameters
Chris@0 109 */
Chris@0 110 public function set($name, $value)
Chris@0 111 {
Chris@0 112 $this[$name] = $value;
Chris@0 113 return $this;
Chris@0 114 }
Chris@0 115 }