PHP 三元运算符

PHP ternary operators

我在PHP写了一个三元函数,好像可以用,虽然我不确定是否正确,谁能看一下,告诉我是否正确?

我已经添加了应该发生什么的三元和 if。

    //Foreach Loop
    foreach ($post as $item) {
        //If of what should occur
        if ($passed == true) {
            if (is_numeric($item)) {
                if ($item > 0) {
                    $passed = true;
                }
                else {
                    $passed = false;
                }
            }
            else {
                if ($item != "") {
                    $passed = true;
                }
                else {
                    $passed = false;
                }
            }
            //Ternary operator.
            $passed = (is_numeric($item) ? ($item > 0 ? true : false) : ($item != "" ? true : false));
        }
        else {
            return $passed;
        }
    }

请查看更正后的代码

$passed = (is_numeric($item))?($item>0?true:false):($item !="" ? true:false);

老实说,我真的不明白你为什么不使用

if (!empty($item)) { 
    $passed = true; 
} else {
    return false; 
} 

无论如何,三元组的可读性不如 if /elseif / else,它们也更慢(请注意,这不是普遍的真理,而是更普遍的用例 http://fabien.potencier.org/the-php-ternary-operator-fast-or-not.html)。 我会建议,如果你真的需要所有这些 if 和 elses 来保留它们而不是使用三元(出于可读性的目的)。