"Numerieke stringwaarde" Afvang: Difference between revisions

From Edgar BV Wiki
Jump to navigation Jump to search
 
No edit summary
 
Line 1: Line 1:
Deze functies zijn bedoeld ter vervanging van de interne PHP-functies is_int(), is_float() en dergelijke. Zoals je kunt zien worden ze wel gebruikt in deze functies, maar dan in combinatie met andere functies.
Het probleem van het gebruik van is_int() is bijv. dat als je een waarde uit de GET- of POST-vars ermee checkt, dat dit nooit een INTEGER is. Alle GET- en POST-vars zijn namelijk STRINGs of ARRAY's.
Onderstaande functies lossen dit probleem op.
<pre>
<pre>
/**
/**
Line 5: Line 11:
  */
  */
function isDigital($var){
function isDigital($var){
return ($var===0 || $var==='0' || (!empty($var) && (is_string($var) || is_int($var)) && ctype_digit((string) $var)));
    return ($var===0 || $var==='0' || (!empty($var) && (is_string($var) || is_int($var)) && ctype_digit((string) $var)));
}
}


function isFloat($var){
function isFloat($var){
return ($this->isDigital($var) || is_numeric($var));
    return ($this->isDigital($var) || is_numeric($var));
}
}
</pre>
</pre>

Latest revision as of 13:18, 5 June 2007

Deze functies zijn bedoeld ter vervanging van de interne PHP-functies is_int(), is_float() en dergelijke. Zoals je kunt zien worden ze wel gebruikt in deze functies, maar dan in combinatie met andere functies.

Het probleem van het gebruik van is_int() is bijv. dat als je een waarde uit de GET- of POST-vars ermee checkt, dat dit nooit een INTEGER is. Alle GET- en POST-vars zijn namelijk STRINGs of ARRAY's.

Onderstaande functies lossen dit probleem op.

/**
 * This function returns true only when given positive integer or string that contains only digits
 * @link http://nl3.php.net/manual/en/function.ctype-digit.php (Comments)
 */
function isDigital($var){
    return ($var===0 || $var==='0' || (!empty($var) && (is_string($var) || is_int($var)) && ctype_digit((string) $var)));
}

function isFloat($var){
    return ($this->isDigital($var) || is_numeric($var));
}