Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以在PHP中为此语句创建三元运算符?_Php_Ternary Operator - Fatal编程技术网

是否可以在PHP中为此语句创建三元运算符?

是否可以在PHP中为此语句创建三元运算符?,php,ternary-operator,Php,Ternary Operator,是否可以在PHP中为此语句创建三元运算符?是: function integer($str) { if(preg_match('/[^0-9]/', $str)) { return FALSE; } else { return $str; } } 为此,您应使用: function integer($str) { retu

是否可以在PHP中为此语句创建三元运算符?

是:

    function integer($str)
    {
        if(preg_match('/[^0-9]/', $str)) 
        { 
           return FALSE;
        }

        else
        {
           return $str;
        }
    }
为此,您应使用:

function integer($str) {
  return (preg_match('/[^0-9]/', $str) ? false : $str);
}
或用于:


如果这不是一个学习练习,我建议使用内置的
is_int
函数:@SimpleCoder,它只检查类型,而不检查内容--
is_int(“4”)
返回false。@lonesomeday:谢谢,我的意思是
is_numeric
filter\u var可以选择配置为允许最小值和最大值,所以您也可以将其限制为仅为正整数。@Gordon:可以只指定
min\u范围吗?@Gordon,re。八进制,请参阅
FILTER\u FLAG\u ALLOW\u octal
标志。@salath:我认为通常不允许八进制数。@nikic,这是一个合理的假设。我只是提醒Gordon(和读者)过滤器可以选择允许八进制整数。
$str=“”
应该返回
?@salathe-只是解决OPs问题,而不是批评他的代码/流程。
function integer($str) {
    return ctype_digit($str) ? $str : false;
}
function integer($str) {
    return filter_var($str, FILTER_VALIDATE_INT, array(
        'options' => array('min_range' => 0),
        'flags' => FILTER_FLAG_ALLOW_OCTAL
    ));
}