function integer($str) { if(preg_match('/[^0-9]/', $str)) { return FALSE; } else { return $str; } }
Можно ли создать троичный оператор для этого оператора в PHP?
Да
function integer($str) { return (preg_match('/[^0-9]/', $str) ? false : $str); }
Вы должны использовать ctype_digit для этого:
ctype_digit
function integer($str) { return ctype_digit($str) ? $str : false; }
Или используйте filter_var с FILTER_VALIDATE_INT:
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 )); }