紅穆ノート
レコメンド 言語ノート PHPにおける三項演算子と`if`文の詳細解説
言語ノート PHP

PHPにおける三項演算子と`if`文の詳細解説

PHPにおける三項演算子と`if`文の詳細解説

三項演算子語法

条件 ? 结果1 : 结果2 

説明:疑問符の前に記載された部分は判定条件です。この条件を満たした場合、結果は「1」、満たさなかった場合、結果は「2」となります。
本稿では、三元演算子と `if...else...` の違いについて詳細に比較・解説しており、皆様の参考になれば幸いです。

今日、論文のオンライン修正作業中に、理解できない文に遭遇しました:

$if_summary = $row['IF_SUMMARY']==2?'是':'否';

その後、Baiduで検索すると、これはPHPの三項演算子であることがわかった。

この文の意味は、つまり

if($row['IF_SUMMARY']==2){
$if_summary="是";
}else{
$if_summary="否";
}

三元演算子の機能は「if...else」文と同様であり、1行で記述できるため、コードが非常に簡潔で、実行効率も高いです。

PHPプログラムにおいて三項演算子を適切に使用することで、スクリプトをより簡潔かつ効率的に設計できる。

コード形式

(expr1) ? (expr2) : (expr3);

解説

条件「expr1」が真のときには、文「expr2」を実行し、そうでない場合は「expr3」を実行します。

同じ機能を実現する場合、条件付き処理文を使用するには、複数行のコードを記述する必要があります:

if(expr1) {
expr2;
} else {
expr3;
}

前述の三元演算子の利点は、決して誇張されたものではありません。ただし、多くの場合、この演算子はコードが比較的単純なとき、すなわち実行される文が単一の文である場合にのみ使用されます。

例:

$a>$b ? print "a大于b" : print "a小于b";

実際、三元演算子は拡張して使用できます。設定された条件が成立する場合も、成立しない場合も、実行文は1文以上で構いません。以下の形式をご覧ください:

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

明確に確認できるように、複数の実行文は文字列演算記号(「」)を用いて連結することができ、各実行文は独立かつ完全な実行文であることを示すために小角括弧で囲まれている。

このように拡張すると、その機能は「if...else」文にさらに近づきます。

三元演算子のネスト使用

また、三元演算子はネストして使用することもできます。

例えば、a > b が成り立つ場合:a < c ならば x = c - a、それ以外の場合は x = a - c;

そうでない場合、a < 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`文に代わりに三項演算子を使用するのが最適な選択肢となるでしょう。`「三項」`に含まれる条件句以外の任意の「元」を考慮しなくても、三項演算子を使用する方法は、`if`文よりも簡潔です。

以下の文の文法は正しく、小文字の引用符を用いることで、第2または第3の「“」要素が無視されています:

$a>$b ? print "Yes" : "";

$a>$b ? '': print 'No';

ご注意ください

ご注意ください:

三項演算子を使用する場合、`echo`文の代わりに `print`文を使用することを推奨します。

以下の一連の文列の理解に注意してください:

$str = $_GET['abc'] ? 'wangjinbo' : 'wjb';

これは、「以下のように理解してはならない」

$str が $_GET['abc'] と等しい場合に 'wangjinbo' に、それ以外の場合は 'wjb' に割り当てる;

1:等値を判定するには `==` を使用してください。

元の二項・三項演算子の構文は上記の通りである:(expr1)?(expr2):(expr3)。この構文において、二項または三項演算子「wangjinbo」または「wjb」単体では意味のある式を構成することはできない。

正しい理解とは:

`$_GET['abc']为空值(也就是否(false),PHP中 ' ',null,0,undifine,都等效布尔值false)这时$str` は 'wjb' に設定する。それ以外の場合は 'wangjinbo' に設定する。

注:

IF文の条件に条件が含まれていない場合、内容である $_GET['abc'] が真(true)となるため、この条件が満たされ、str は 'wangjinbo' に割り当てられます。そうでない場合は、str は 'wjb' に割り当てられます。明示的な値が 'true' でない場合、「真(true)」は値があることを示し、「偽(false)」は値がないことを示します。

微信赞赏

WeChat

支付宝赞赏

Alipay

✍️ クリエイター: 紅穆

ウェブサイト管理者 · ご覧いただきありがとうございます!さらに多くの魅力的なコンテンツをお楽しみいただけますよう、引き続きご支援をお願いいたします。

著者プロフィール プロフィールを見る →

関連記事

PHPのob関数の記録

PHPのob関数の記録 言語ノート PHP

以下の3つの関数(`ob_get_contents()`、`ob_end_clean()`、`ob_start()`)を用いることで、ローカルファイルのバッファリングやローカルスクリプトコードの実行を実現できます。`ob_start()`を用いて出力されるコードをバッファに保存すると、ページは即座に表示されません。その後、`ob_get_contents()`を呼び出してバッファに保存されたデータを取得します。
👁 153
PHP preg

PHP preg 言語ノート PHP

`preg_match_all` 関数は、グローバルな正規表現マッチングを実行するために使用されます。`preg_match_all()` の構文は以下の通りです:`int preg_match_all( string $pattern , string $subject [, array &$matches [, int $flags = PREG… ] )`
👁 173
PHPにおける型強制変換

PHPにおける型強制変換 言語ノート PHP PHPデータ収集 PHPとMySQL

データ型の確認:1. 指定された式の値および型を確認する場合、`var_dump()` を使用します。2. デバッグ目的で、読みやすい型表現を取得する場合、`gettype()` を使用します。3. 指定された型を確認する場合は、`gettype()` ではなく `is_type()` 関数を使用してください。文字列を数値に変換:文字列が数値として評価される場合、結果は以下のルールに基づいて決定されます…
👁 238
PHPで指定された文字列が文字列に含まれているかどうかを判定するさまざまな方法

PHPで指定された文字列が文字列に含まれているかどうかを判定するさまざまな方法 言語ノート PHP

`str strstr()` 関数は、ある文字列が別の文字列内で最初に出現する位置を検索します。この関数は、一致した位置から始まる文字列の残りの部分を返します。対象の文字列が見つからない場合、`false` を返します。コード例:`< ?php $email = 'user@example.com'; $domain = strstr($email, ...
👁 143
Typechoのindex.phpホームページテンプレート作成に使用する一般的なコード

Typechoのindex.phpホームページテンプレート作成に使用する一般的なコード 言語ノート PHP

テンプレートを作成するのは特に難しいことではありません。HTMLとCSSを適切に記述すれば、テンプレートの組み込みも非常に簡単です。タグの内部構造を理解する必要はなく、単にタグを使用するだけであれば、テンプレートを迅速に作成できます。本記事では、一般的に使用されるタグの使い方について簡単に紹介しており、読者の皆様がテンプレートの世界に smoothly に入っていただけるよう願っています。テンプレートに関する情報については、まずメインファイルから説明します。このファイルを開くと、最初に目に飛び込むのは以下のコメントです:/** * これは Typecho システム用の標準的な設定…
👁 270

おすすめ読書

EmpireCMS「Lingdong」タグ呼び出しフィールド一覧

EmpireCMS「Lingdong」タグ呼び出しフィールド一覧 プログラムノート EmpireCMS

「Lingdongタグ」の呼び出しに対応しているすべてのフィールドを収集・分類します。帝国CMSのLingdongタグ:[e:loop={コーナーID/特集ID、表示件数、操作タイプ、タイトル付き画像のみ表示、追加SQL条件、表示順序}] テンプレートコード内容 [/e:loop] 呼び出し時間:<?=date('m-d',$bqr[newstime])?> <?=date…
👁 3771
CSSの `vh` および `vw` の自動調整

CSSの `vh` および `vw` の自動調整 言語ノート CSS

モバイル端末では、REMをルートHTMLに対して使用してレイアウトを変更し、JSを用いてモバイル対応を実現します。一方、本記事では純粋なCSSのビューпор単位(vwおよびvh)を用いて自動的にレイアウトを適応させます。現在、この手法の互換性は完全には確実とは言えませんが、それでもvwやvhの強力な機能を理解することは十分に可能です。レスポンシブレイアウトの実現にはメディアクエリ(Media Queries)が用いられ、主流のデバイスの幅をブレークポイントとして設定します…
👁 359
帝国ウェブサイトのURLとBaidu APIプッシュコード

帝国ウェブサイトのURLとBaidu APIプッシュコード 落とし穴のまとめ

EmpireCMS用のBaidu Pushコード(自ら使用)。使い方を知らない方は、無謀に試すことは避けてください。URL、データテーブル、およびBaidu APIキーを修正する必要があります。<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<br />`<
👁 168
PHPで指定されたウェブサイトのページを抓取(スクレイピング)する方法は?

PHPで指定されたウェブサイトのページを抓取(スクレイピング)する方法は? 言語ノート PHP PHPデータ収集

PHPを用いてウェブページからデータを取得することができる。一般的な方法として、cURL拡張ライブラリを使用する方法がある。以下に簡単な例を示す:// cURLリソース「ch」を作成する:`$ch = curl_init();` // レスポンス先URLを設定:`$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');`
👁 171
(適応型モバイルサイト)金物・機械関連ウェブサイト用PBootCMSテンプレート/青色のマーケティング向け金物アクセサリーウェブサイトのソースコードダウンロード(0487)

(適応型モバイルサイト)金物・機械関連ウェブサイト用PBootCMSテンプレート/青色のマーケティング向け金物アクセサリーウェブサイトのソースコードダウンロード(0487) 実用収集 pbootcmsテンプレート

金物機械・アクセサリー業界向けのPbootCMSブルー色のマーケティング型ウェブサイトテンプレートです。モバイル端末でのアクセスに対応しています。デザインスタイルは製品の紹介および問い合わせ処理の促進を重視しており、金物製品の仕様や型番を効果的に表示できます。これにより、金物機械関連企業がオンラインで精密な顧客獲得を実現できます。テンプレート表示・インストール手順:ウェブサイトバックエンド:/admin.php、ユーザー名:admin、パスワード:admin、解凍用パスワード:www.4s5.c…
👁 55