PHPの三項演算子

墨辰丷
リリース: 2023-03-31 07:10:01
オリジナル
84120 人が閲覧しました

この記事では主に PHP の三項演算子について紹介します。興味のある方はぜひ参考にしてください。

推奨マニュアル:php完全自習マニュアル

三項演算子の構文: 条件1: 結果2 注:疑問符の前の位置は判定条件です。条件が満たされていれば結果は 1、満たされていない場合は結果は 2 となります。

以下で詳しく説明しましょう。

今日、オンラインで自分の論文を見直しているときに、理解できない文に遭遇しました:

$if_summary = $row['IF_SUMMARY']==2?'是':'否';
ログイン後にコピー

この文の意味は、

if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}
ログイン後にコピー

に相当します。三項演算子の機能は同じです。 「if...else」処理ステートメントは一貫性があり、1 行で記述され、コードは非常に簡潔で、実行効率が高くなります。

おすすめ関連記事:
1.PHP 三項演算子: 速いかどうか?
2.PHP における三項演算子と Null 合体演算子の簡単な比較
3.php の一般的な演算子とは何ですか
関連ビデオの推奨事項:
1.Dugu Jiijian (4)_PHP ビデオ チュートリアル

PHP プログラムでの 3 つの適切な使用法メタ演算子スクリプトをより簡潔かつ効率的にすることができます。

コード形式は次のとおりです:

(expr1) ? (expr2) : (expr3);
ログイン後にコピー

説明:

条件 "expr1" が true の場合はステートメント "expr2" を実行し、それ以外の場合はステートメント "expr3" を実行します。

同じ機能を実現するために、条件付き処理ステートメントを使用する場合は、複数行のコードを記述する必要があります。

if(expr1) {

expr2;
} else {
expr3;
}
ログイン後にコピー

上記の三項演算子の良さが活かされていないことがわかります。誇張です。

ただし、ほとんどの場合、三項演算子はコードが比較的単純な場合、つまり実行ステートメントが 1 つの文だけの場合にのみ使用されます。例:

$a>$b ? print "a大于b" : print "a小于b";
ログイン後にコピー

実際、三項演算子は拡張して使用でき、設定された条件が true であるかどうかにかかわらず、実行ステートメントは複数の文にすることができます。

(expr1) ? ( expr2).(expr3) : (expr4).(expr5);

文字列演算記号 (".") を使用して複数の実行ステートメントを接続できることが明確にわかります。実行ステートメント 独立した完全な実行ステートメントであることを示すために、小さな山かっこで囲みます。

この拡張後、その関数は「if...else」プロセス ステートメントに近くなります。

同時に、三項演算子を入れ子にして使用することもできます。

たとえば、a が b より大きい場合:

a が c より小さい場合は、x=c-a、そうでない場合は x=a-c、それ以外の場合は、a が c より小さい場合。 b より: b が c より小さい場合、x=c-b、それ以外の場合、x=b-c:

$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);
ログイン後にコピー

ネストに使用される三項演算子の可読性はあまり良くなく、そのメンテナンスに問題が発生する可能性があります。将来のコードですが、「if.. .else」や他の処理ステートメントと比較すると、上記の状況では確かに簡潔すぎるのが魅力です。

怠け者でコードの簡素化を追求したい人にとって、三項演算子を使用して if process ステートメントを置き換えるのは優れた選択です。 「三項」の条件文以外の「要素」を考慮する必要がない場合でも、if 文よりも三項演算子を使用した方が簡潔です。

次のステートメントの構文は正しく、小さな引用符で囲まれた 2 番目または 3 番目の「要素」が省略されています:

$a>$b ? print "Yes" : "";
$a>$b ? &#39;&#39;: print &#39;No&#39;;
ログイン後にコピー

次の点に注意してください:

三項演算子を使用する場合は、echo ステートメントの代わりに print ステートメントを使用することをお勧めします。

次の一連のステートメントの理解に注意してください:

$str = $_GET[&#39;abc&#39;] ? &#39;wangjinbo&#39; : &#39;wjb&#39;;
ログイン後にコピー

これは次のように理解できません: $str が $_GET['abc'] に等しい場合、割り当ては 'wangjinbo' ' それ以外の場合、代入は 'wjb' です。

理由 1: == を使用して等しいかどうかを判断する必要があります。

理由 2: 三項演算子の構文は次のとおりです: (expr1) ? (expr2) : (expr3)、明らかに、上記の 2 値および 3 値の 'wangjinbo' または 'wjb' だけでは意味のある式を形成できません。

正しい理解は次のとおりです。 ##$_GET[' abc'] は null 値です (つまり、PHP の (false)、' '、null、0、および undifine がすべてブール値 false に相当するかどうか)。このとき、$str は次のとおりです。値「wjb」が割り当てられます。それ以外の場合、値は「wangjinbo」になります。


:

条件が存在しない場合IF ステートメントの条件、内容自体 $_GET['abc'] が true であり、条件が true の場合、str には値 'wangjinbo' が割り当てられます。それ以外の場合、明確な値がない場合は値 'wjb' が割り当てられます。 true、true (真) は値があることを意味し、false (偽) は値がないことを意味します。

要約

: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。

関連する推奨事項:

投稿リクエストをシミュレートするための php の 3 つの一般的な使用法

php はファイル操作用ですおよび文字列暗号化のメソッド

php (配列の削除、変換、グループ化、ソート用)

以上がPHPの三項演算子の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!