PHP替代语法和字符串/数字比较


PHP alternative syntax and string/number comparison

我可以摆脱这个。正常语法似乎可以工作,否则替代语法似乎无法按预期工作。

<?php
$num =  "abcdefghi";
function checkNum($n) {
    if(!is_numeric($n))
    {
        return "not numeric";
    } else
    {
        if($n<0)
        {
            return "less than zero";
        } else
        {
            return "greater then or equal to zero";
        }
    }
}
echo checkNum($num); # echoes "not numeric";
function checkNum2($n)
{
    $r = !is_numeric($n) ? "not numeric" : $n<0 ? "less than zero" : "greater then or equal to zero";
    return $r;
}
echo checkNum2($num); # echoes "less than zero"
?>

那么问题出在哪里呢?

提前谢谢。

使用这个,您只是在函数中错过了()

function checkNum2($n)
{
    $r = !is_numeric($n) ? "not numeric" : ($n<0 ? "less than zero" : "greater then or equal to zero");
    return $r;
}
echo checkNum2($num); # echoes "not numeric";

工作示例http://codepad.viper-7.com/DVvQaC

试试这个:

$r = (!is_numeric($n)) ? "not numeric" : (($n<0) ? "less than zero" : "greater then or equal to zero");