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 来保留它们而不是使用三元(出于可读性的目的)。
我在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 来保留它们而不是使用三元(出于可读性的目的)。