Можно ли создать троичный оператор для этого оператора в PHP? - PullRequest
3 голосов
/ 02 февраля 2011
    function integer($str)
    {
        if(preg_match('/[^0-9]/', $str)) 
        { 
           return FALSE;
        }

        else
        {
           return $str;
        }
    }

Можно ли создать троичный оператор для этого оператора в PHP?

Ответы [ 2 ]

5 голосов
/ 02 февраля 2011

Да

function integer($str) {
  return (preg_match('/[^0-9]/', $str) ? false : $str);
}
3 голосов
/ 02 февраля 2011

Вы должны использовать ctype_digit для этого:

function integer($str) {
    return ctype_digit($str) ? $str : false;
}

Или используйте filter_var с FILTER_VALIDATE_INT:

function integer($str) {
    return filter_var($str, FILTER_VALIDATE_INT, array(
        'options' => array('min_range' => 0),
        'flags' => FILTER_FLAG_ALLOW_OCTAL
    ));
}
...