の使い方を教えてくださいternaryオペレーター(?: にPHPとしての表記"if/else"?

StackOverflow https://stackoverflow.com/questions/1506527

質問

に基づく事例 こちらのページから, 私は、コードサンプルです。

ワコードを使用 if 決算

if (!empty($address['street2'])) echo $address['street2'].'<br />';

非コードを使用ternaryオペレーター:

$test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />';

// Also tested this
(empty($address['street2'])) ? 'Yes <br />' : 'No <br />';

更新
後のブライアン先の先端を見ることが鳴り響く $test 出力の結果です。以下のようにな魅力!

echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';
役に立ちましたか?

解決

(condition) ? /* value to return if condition is true */ 
            : /* value to return if condition is false */ ;

書式は"簡略表現が"オペレーターの ? するという条件付きのオペレーターができない実行コードと同様の方法かった場合:

if (condition) {
    /* condition is true, do something like echo */
}
else {
    /* condition is false, do something else */
}

おとえば、実行、 echo 決が $address は空です。できないこと同様の条件とします。よくお使いいただくためには echo 結果に条件付きのオペレーター:

echo empty($address['street2']) ? "Street2 is empty!" : $address['street2'];

この表示"ストリートは空です!"場合は空となっておりますので、それ以外が表示されますので、street2アドレスです。

他のヒント

PHP7+

としてのPHP7,この作業が行われることにより、 Null律でオペレーター このように:

echo !empty($address['street2']) ?? 'Empty';

基本True/Falseの場合宣言

$is_admin = ($user['permissions'] == 'admin' ? true : false);

条件付きの歓迎メッセージ

echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!';

条件付き項目メッセージ

echo 'Your cart contains '.$num_items.' item'.($num_items != 1 ? 's' : '').'.';

三変数オペレーターだけの簡略表現のために、if/elseブロックです。ワコードを持たない他の状況では適しません。

以下の例です:

echo empty($address['street2']) ? 'empty' : 'not empty';

この三変数オペレーター。k.aルオペレーター(googleではP)を探しています。

echo $address['street2'] ?: 'Empty'; 

この値を返します変数またはデフォルトの場合、変数は空になります。

ご注意 使用時の条件付き入れ子事業者、使用する場合がありま括弧 なりません。※

のようになPHPなと同じように少なくともJavascriptやC#.

$score = 15;
$age = 5;

// The following will return "Exceptional"
echo 'Your score is: ' . ($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average'));

// The following will return "Horrible"
echo 'Your score is: ' . ($score > 10 ? $age > 10 ? 'Average' : 'Exceptional' : $age > 10 ? 'Horrible' : 'Average');

同じコードJavascriptおよびC#戻る"例外的"でもある。

第2の場合、PHPなのは(または少なくともそれがわかる):

  1. $score > 10?あり
  2. $age > 10?なので、現在の $age > 10 ? 'Average' : 'Exceptional' を返します'例'
  3. それだけではなく、停止の全体計算書及び帰還"例外"であり、継続評価、次の声明
  4. 次決となり 'Exceptional' ? 'Horrible' : 'Average' を返す'恐ろしい'、'例はtruthy

からのドキュメンテーション http://php.net/manual/en/language.operators.comparison.php

でくださいますようお願いいを避ける"積層"ternaryの表現です。PHPの 行使によternaryオペレーター内 決が非自明である。

条件付きの歓迎メッセージ

echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!';

ネストしたPHPの短縮形

echo 'Your score is:  '.($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average') );

これまでにも短交換 echo<?= code ?>

<?=(empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />'?>

これは特にしたいときに決定し、内navbarるか、メニューのオプションを表示する必要があるとして既に訪問済み(クリックしてください:

<li<?=($basename=='index.php' ? ' class="active"' : '')?>><a href="index.php">Home</a></li>

ここで興味深い例であり多様な条件です。

$value1 = '1';
$value2 = '2';
$value3 = '3';

// 1 Condition
$v1 = ($value1 == '1') ? TRUE : FALSE;
var_dump($v1);
echo "<br>";

// 2 Conditions
$v2 = ($value1 == '' ? TRUE : ($value2 == '2' ? TRUE : FALSE));
var_dump($v2);
echo "<br>";

// 3 Conditions
$v3 = ($value1 == '' ? TRUE : ($value2 == '' ? TRUE : ($value3 == '3' ? TRUE : FALSE)));
var_dump($v3);
echo "<br>";

// 4 Conditions
$v4 = ($value1 == '1') ? ($value2 == '2' ? ($value3 == '3' ? TRUE : 'FALSE V3') : 'FALSE V2') : 'FALSE V1' ;
var_dump($v4);
echo "<br>";

いす使用のブラケットを正しく行えるかどうかである。してみてください:

$test = (empty($address['street2']) ? 'Yes <br />' : 'No <br />');

という作品などでもお使いいただけます:

echo (empty($address['street2']) ? 'Yes <br />' : 'No <br />');

もあり堪ternaryオペレーターでは以下のようなものです:

(式1)?:式2は戻ります 式1 場合に評価しtrue 式2 します。

例:

$a = 'Apples';
echo ($a ?: 'Oranges') . ' are great!';

戻ります

Apples are great!

以来、PHP5.3できている、中部 ternaryます。表現expr1?:expr3を返しますexpr1がexpr1 に評価し、expr3ます。

から PHPマニュアル

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top