是否可以在PHP中为此语句创建三元运算符?
是否可以在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
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
));
}