三項演算子は、ソフトウェア プログラミングにおける固定形式、つまり (?:) です (注: 括弧内の内容は正しい形式です)。
構文: 条件 結果 1 : 結果 2
説明: クエスチョンマークの前の位置は判定の条件です。条件が満たされていれば結果は 1、満たされていない場合は結果は 2 になります。
コードは次のとおりです | コードをコピー |
$id = isset($_GET['id']) ? $_GET['id'] : false; ?> |
1 つのコードで多くのコードを置き換えます。まず、isset() 関数を使用して、$_GET['id'] が存在するかどうかを確認します。 $_GET['id'] が存在する場合は、その値が返されます。ただし、存在しない場合は条件は false となり、false が返されます。 $id の値は、$_GET['id'] が存在するかどうかによって異なります。したがって、基本的に、$_GET['id'] が存在する場合は $id=$_GET['id']、それ以外の場合は $id=false になります。
例
「?:」条件文を使用してユーザー入力値を確認します:
コードは次のとおりです | コードをコピー |
$filename = isset($argv[1]) ? $argv[1] : "php://stdin"; ながら (!@feof($fp)) { @fclose($fp); |
三項演算子を使用した前のコードは、次のコードと同等です:
コードは次のとおりです | コードをコピー |
if (isset($argv[1])) { |
上記のコードを通常の if-else 構造で記述した場合、コード量は上記よりもはるかに多くなることがわかりますが、2 番目の形式の方が理解しやすく、追加の入力を必要としません。したがって、三項演算子を選択するときは、必ず長所と短所を比較検討してください。
三項演算子の利点
PHP の三項演算子 (?:) は、プログラマーがこれらのステートメントの作成に費やす時間を大幅に短縮します。その構文は次のとおりです:
条件 ? do_if_true : do_if_false;
三項演算子は必須の構造ではありませんが、コードを美しくするための方法です。同様に、不良の if...else ブロックを置き換えて、コードの可読性を向上させることができます。
同様に、ユーザーは PHP または演算子を使用して変数にデフォルト値を割り当てることができます:
コードは次のとおりです | コードをコピー |
$filename = $argv[1] または $filename = "php://stdin"; |