2

次のステートメントの意味と、それが参照しているphpのタイプを説明できる人はいますか?さらに調査を行うことができます:

$foo = ($variation_id>0) ? $variation_id : $item_id;

検索してみましたが、何を検索しているのかよくわかりません。

私が見つけようとしているのは、次の構文の名前と意味です ?/:そして($variation_id>0)単なる省略形の if ステートメント ?

-- 条件変数に出くわしましたが、簡単な説明をいただければ幸いです。

4

4 に答える 4

4

その構造を三値構造と呼び、If ... Else の略で

あなたのスニペット:

$foo = ($variation_id>0) ? $variation_id : $item_id;

に変換します

if($variation_id>0) {
   $foo = $variation_id;
} else {
   $foo = $item_id;
}

基本的に、構文は次のようになります

$variable = (<CONDITION>) ? <TRUE EXPRESSION> : <FALSE EXPRESSION>;

複数の三次構造を 1 行にまとめることもできますが、複雑すぎる場合は通常の if を使用した方がよいでしょう。

于 2012-04-10T23:16:02.717 に答える
0

これは単なるショートカットで、次のようになります。

関数があるとしましょう。

最後に値を返したいのですが、値が 0 の場合は例外です。

だからあなたはするでしょう:

return ($value != 0) ? this_will_be_returned_if_true : this_will_be_returned_if_false;

変数の代入でもそれを行うことができます。

パターン:

(Bool statement) ? true : false;
于 2012-04-10T23:14:57.797 に答える
0

それは三項条件です。'?' の前の左側の条件が true の場合、'?' の後のステートメントを実行します。そしてコロンの前。そうでない場合は、ステートメントを実行します。

英語では、これは「ゼロより大きい場合はバリエーション ID を使用し、それ以外の場合はアイテム ID を使用する」という意味です。

于 2012-04-10T23:13:20.963 に答える
0
$foo = ($variation_id>0) ? $variation_id : $item_id;

意味

if($variation_id>0) 
{
    $foo =$variation_id // if true
}
else
{
    $foo =$item_id; // if false
}

ブレーキをかけましょう

$foo=($variation_id>0) ? // This is condition 
$variation_id : // This value will be populated by variable '$foo' if condition is true
$item_id;  // This value will be populated by variable '$foo' if condition is false

三項ステートメント/操作として知られている、のショートカットif else

于 2012-04-10T23:14:07.513 に答える