ホームページ >バックエンド開発 >PHPチュートリアル >phpの三項演算子とifの詳しい解説
三項演算子の構文: 条件 ? 結果 1 : 結果 2 注:疑問符の前の位置は判定条件です。条件が満たされていれば結果は 1、満たされていない場合は結果は 2 となります。
おすすめマニュアル: php完全独学マニュアル
この記事では三項演算子とif...else...を詳しく比較解説していますので、皆様のお役に立てれば幸いです。
今日オンラインで自分の論文を見直していたら、理解できない文に遭遇しました:
$if_summary = $row['IF_SUMMARY']==2?'是':'否';
後からBaiduで調べたら、それがPHPの三項演算子であることが分かりました
この文の意味は以下と同じです
if($row['IF_SUMMARY']==2){ $if_summary="是"; }else{ $if_summary="否"; }
三項演算子 この関数は「if...else」処理ステートメントと一致しており、コードは非常に簡潔で、実行効率が高くなります。
PHP プログラムで三項演算子を適切に使用すると、スクリプトをより簡潔で効率的にすることができます。
コードの形式は次のとおりです:
(expr1) ? (expr2) : (expr3);
説明:
条件 "expr1" が true の場合はステートメント "expr2" を実行し、それ以外の場合はステートメント "expr3" を実行します。
同じ機能を実現するには、条件処理文を使用する場合、複数行のコードを記述する必要があります:
if(expr1) { expr2; } else { expr3; }
上記の三項演算子の良さは誇張ではないことがわかります。ただし、ほとんどの場合、三項演算子はコードが比較的単純な場合、つまり実行ステートメントが 1 つのステートメントのみである場合にのみ使用されます。
例:
$a>$b ? print "a大于b" : print "a小于b";
実際、設定された条件が true であるかどうかにかかわらず、実行ステートメントは複数の文になる可能性があります。次の形式を試してみると、それがはっきりとわかります。複数の実行 文字列演算子 (「.」) を使用してステートメントを接続できます。各実行ステートメントは小さな山括弧で囲まれ、独立した完全な実行ステートメントであることを示します。
この拡張後、その機能は "if...else" プロセス ステートメントに近くなります。
同時に、三項演算子を入れ子にして使用することもできます。
たとえば、a が b より大きい場合: a が c より小さい場合、x=c-a、それ以外の場合は x=a-c
それ以外の場合、a が b より小さい場合: b が c より小さい場合、それ以外の場合は x=c-b x=b-c:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
入れ子になった三項演算子の可読性はあまり良くなく、今後のコードの保守に問題が生じる可能性があります。 ただし、「if...else」などの処理文と比較すると、上記の状況は、確かにそうです。 簡潔であり、それが魅力です。
怠け者でコードの単純さを追求したい人にとっては、三項演算子を使用して if process ステートメントを置き換えるのは優れた選択肢となるはずです。 「三項」の条件文以外の「要素」を考慮する必要がない場合でも、if 文よりも三項演算子を使用した方が簡潔です。
次のステートメントの構文は正しく、2 番目または 3 番目の「要素」が引用符で囲まれていない小さな方法で省略されています:
$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);次の点に注意してください:
三項演算子を使用する場合は、次の使用をお勧めします。 print ステートメントは echo ステートメントを置き換えます。
次の一連のステートメントの理解に注意してください:
$a>$b ? print "Yes" : ""; $a>$b ? '': print 'No';
これは次のように理解できません:
$str が $_GET['abc'] に等しい場合、割り当てられた値は 'wangjinbo' であり、それ以外の場合は割り当てられた値は 'wjb';
理由 1: 等しいかどうかを判断するには、== を使用する必要があります。
理由 2: 三項演算子の構文は次のとおりです: (expr1) : (expr3)上記の二項、三項の 'wangjinbo' または 'wjb' だけでは意味のある式を形成できません
の正しい理解は次のとおりです: $_GET['abc'] が null 値 (つまり、(false) であるかどうか) )、' '、null、0、PHP の undifine、どちらもブール値 false に相当します) この時点で、$str には値 'wjb' が割り当てられ、それ以外の場合は値 'wangjinbo' が割り当てられます。
IF文の条件に条件がない場合、内容自体$_GET['abc']がtrueとなり、条件が成立した場合はstrに値'wangjinbo'が代入され、そうでない場合は値'wjb'が代入されます; true の明確な値がない場合、true は値があることを意味し、false は値がないことを意味します。
おすすめ関連記事: 1.PHP 三項演算子: 速いかどうか? 2.
PHPにおける三項演算子とNull合体演算子の簡単な比較 3.
phpの一般的な演算子とは何ですか
関連ビデオの推奨: 1.
Dugu Jiijian (4)_PHP ビデオ チュートリアル
以上がphpの三項演算子とifの詳しい解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。