Skip to content

Commit

Permalink
added 3rd parameter to Input methods
Browse files Browse the repository at this point in the history
This allows to treat empty parameters as default
  • Loading branch information
splitbrain committed Jun 24, 2012
1 parent f9aa73b commit c4e18ef
Showing 1 changed file with 21 additions and 10 deletions.
31 changes: 21 additions & 10 deletions inc/Input.class.php
Expand Up @@ -33,7 +33,7 @@ function __construct() {
* Basically a wrapper around isset
*
* @see isset
* @param $name Parameter name
* @param string $name Parameter name
* @return bool
*/
public function has($name) {
Expand All @@ -45,10 +45,12 @@ public function has($name) {
*
* @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set
* @param bool $nonempty Return $default if parameter is set but empty()
* @return mixed
*/
public function param($name, $default = null) {
public function param($name, $default = null, $nonempty = false) {
if(!isset($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;
return $this->access[$name];
}

Expand All @@ -58,12 +60,13 @@ public function param($name, $default = null) {
* 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
*
* @param string $name Parameter name
* @param mixed $default Initialize parameter with if not set
* @param string $name Parameter name
* @param mixed $default Initialize parameter with if not set
* @param bool $nonempty Init with $default if parameter is set but empty()
* @return &mixed
*/
public function &ref($name, $default = '') {
if(!isset($this->access[$name])) {
public function &ref($name, $default = '', $nonempty = false) {
if(!isset($this->access[$name]) || ($nonempty && empty($this->access[$name]))) {
$this->access[$name] = $default;
}

Expand All @@ -76,11 +79,13 @@ public function &ref($name, $default = '') {
*
* @param string $name Parameter name
* @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
*/
public function int($name, $default = 0) {
public function int($name, $default = 0, $nonempty = false) {
if(!isset($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];
}
Expand All @@ -90,11 +95,13 @@ public function int($name, $default = 0) {
*
* @param string $name Parameter name
* @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
*/
public function str($name, $default = '') {
public function str($name, $default = '', $nonempty = false) {
if(!isset($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];
}
Expand All @@ -104,10 +111,12 @@ public function str($name, $default = '') {
*
* @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set
* @param bool $nonempty Return $default if parameter is set but empty()
* @return bool
*/
public function bool($name, $default = '') {
public function bool($name, $default = '', $nonempty = false) {
if(!isset($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;

return (bool) $this->access[$name];
}
Expand All @@ -117,10 +126,12 @@ public function bool($name, $default = '') {
*
* @param string $name Parameter name
* @param mixed $default Default to return if parameter isn't set
* @param bool $nonempty Return $default if parameter is set but empty()
* @return array
*/
public function arr($name, $default = array()) {
public function arr($name, $default = array(), $nonempty = false) {
if(!isset($this->access[$name])) return $default;
if($nonempty && empty($this->access[$name])) return $default;

return (array) $this->access[$name];
}
Expand Down

0 comments on commit c4e18ef

Please sign in to comment.