の使い方を教えてくださいternaryオペレーター(?: にPHPとしての表記"if/else"?
-
19-09-2019 - |
質問
に基づく事例 こちらのページから, 私は、コードサンプルです。
ワコードを使用 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アドレスです。
他のヒント
基本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なのは(または少なくともそれがわかる):
- は
$score > 10
?あり - は
$age > 10
?なので、現在の$age > 10 ? 'Average' : 'Exceptional'
を返します'例' - それだけではなく、停止の全体計算書及び帰還"例外"であり、継続評価、次の声明
- 次決となり
'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マニュアル