0
($some_var) ? true_func() : false_func();

これはphpで何ですか、そしてこれは何をしますか?存在、ブール、または何?

4

6 に答える 6

4

それはこれと同じことです:

if ($some_var) {
    true_func();
}
else {
    false_func();
}

$some_valが true の場合、 の前に関数を実行します:

$some_valが false の場合、 の後に関数を実行します:

三項演算子といいます。

通常、変数に値を割り当てるときに式として使用されます。

$some_var = ($some_bool) ? $true_value : $false_value;

これは、最も悪用されているプログラミング構造の 1 つです (私の意見では)。

于 2012-07-11T03:11:11.423 に答える
1

PHP マニュアルから引用: 比較演算子

<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// The above is identical to this if/else statement
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}

?>
于 2012-07-11T03:11:22.287 に答える
1

演算子です。

書く代わりに

if ($a < $b) {
  $minVal = $a;
} else {
  $minVal = $b;
}

次のように書くことができます

$minVal = ($a < $b) ? $a : $b;
于 2012-07-11T03:15:03.537 に答える
1

実際には三項演算子です。(つまり、演算子 ?: は三項演算子です)。

($some_var) ? func1() : func2();

「$some_var」はブール式です。true と評価された場合は 'func1()' が実行され、それ以外の場合は 'func2()' が実行されます。

于 2012-07-11T03:17:31.053 に答える
0

まあ、それが書かれている方法は、それはちょうど

func();

( の場合$somevartrueを呼び出しfuncます。そうでない場合は、 も呼び出しfuncます!)

于 2012-07-11T03:13:31.030 に答える
0

ブール値をチェックします:

ブール値に変換する場合、次の値は FALSE と見なされます。

the boolean FALSE itself
the integer 0 (zero)
the float 0.0 (zero)
the empty string, and the string "0"
an array with zero elements
an object with zero member variables (PHP 4 only)
the special type NULL (including unset variables)
SimpleXML objects created from empty tags

他のすべての値は TRUE と見なされます (すべてのリソースを含む)。

こちらもご覧ください: PHP 型比較表

于 2012-07-11T03:18:16.697 に答える