Skip to content
Snippets Groups Projects
Commit c4e18ef9 authored by Andreas Gohr's avatar Andreas Gohr
Browse files

added 3rd parameter to Input methods

This allows to treat empty parameters as default
parent f9aa73bf
No related branches found
No related tags found
No related merge requests found
...@@ -33,7 +33,7 @@ class Input { ...@@ -33,7 +33,7 @@ class Input {
* Basically a wrapper around isset * Basically a wrapper around isset
* *
* @see isset * @see isset
* @param $name Parameter name * @param string $name Parameter name
* @return bool * @return bool
*/ */
public function has($name) { public function has($name) {
...@@ -45,10 +45,12 @@ class Input { ...@@ -45,10 +45,12 @@ class Input {
* *
* @param string $name Parameter name * @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set * @param mixed $default Default to return if parameter isn't set
* @param bool $nonempty Return $default if parameter is set but empty()
* @return mixed * @return mixed
*/ */
public function param($name, $default = null) { public function param($name, $default = null, $nonempty = false) {
if(!isset($this->access[$name])) return $default; if(!isset($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;
return $this->access[$name]; return $this->access[$name];
} }
...@@ -58,12 +60,13 @@ class Input { ...@@ -58,12 +60,13 @@ class Input {
* This avoids copying data in memory, when the parameter is not set it will be created * This avoids copying data in memory, when the parameter is not set it will be created
* and intialized with the given $default value before a reference is returned * and intialized with the given $default value before a reference is returned
* *
* @param string $name Parameter name * @param string $name Parameter name
* @param mixed $default Initialize parameter with if not set * @param mixed $default Initialize parameter with if not set
* @param bool $nonempty Init with $default if parameter is set but empty()
* @return &mixed * @return &mixed
*/ */
public function &ref($name, $default = '') { public function &ref($name, $default = '', $nonempty = false) {
if(!isset($this->access[$name])) { if(!isset($this->access[$name]) || ($nonempty && empty($this->access[$name]))) {
$this->access[$name] = $default; $this->access[$name] = $default;
} }
...@@ -76,11 +79,13 @@ class Input { ...@@ -76,11 +79,13 @@ class Input {
* *
* @param string $name Parameter name * @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set or is an array * @param mixed $default Default to return if parameter isn't set or is an array
* @param bool $nonempty Return $default if parameter is set but empty()
* @return int * @return int
*/ */
public function int($name, $default = 0) { public function int($name, $default = 0, $nonempty = false) {
if(!isset($this->access[$name])) return $default; if(!isset($this->access[$name])) return $default;
if(is_array($this->access[$name])) return $default; if(is_array($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;
return (int) $this->access[$name]; return (int) $this->access[$name];
} }
...@@ -90,11 +95,13 @@ class Input { ...@@ -90,11 +95,13 @@ class Input {
* *
* @param string $name Parameter name * @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set or is an array * @param mixed $default Default to return if parameter isn't set or is an array
* @param bool $nonempty Return $default if parameter is set but empty()
* @return string * @return string
*/ */
public function str($name, $default = '') { public function str($name, $default = '', $nonempty = false) {
if(!isset($this->access[$name])) return $default; if(!isset($this->access[$name])) return $default;
if(is_array($this->access[$name])) return $default; if(is_array($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;
return (string) $this->access[$name]; return (string) $this->access[$name];
} }
...@@ -104,10 +111,12 @@ class Input { ...@@ -104,10 +111,12 @@ class Input {
* *
* @param string $name Parameter name * @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set * @param mixed $default Default to return if parameter isn't set
* @param bool $nonempty Return $default if parameter is set but empty()
* @return bool * @return bool
*/ */
public function bool($name, $default = '') { public function bool($name, $default = '', $nonempty = false) {
if(!isset($this->access[$name])) return $default; if(!isset($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;
return (bool) $this->access[$name]; return (bool) $this->access[$name];
} }
...@@ -117,10 +126,12 @@ class Input { ...@@ -117,10 +126,12 @@ class Input {
* *
* @param string $name Parameter name * @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set * @param mixed $default Default to return if parameter isn't set
* @param bool $nonempty Return $default if parameter is set but empty()
* @return array * @return array
*/ */
public function arr($name, $default = array()) { public function arr($name, $default = array(), $nonempty = false) {
if(!isset($this->access[$name])) return $default; if(!isset($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;
return (array) $this->access[$name]; return (array) $this->access[$name];
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment