PHP で if...else ショートハンドを使う

Subodh Poudel 2023年1月30日
  1. PHP の三項演算子の紹介
  2. PHP での true/false 宣言に三項演算子を使用する
PHP で if...else ショートハンドを使う

この記事では、PHP で if...else 条件を記述するための簡略化された方法を使用する方法を紹介します。デモンストレーションでは、三項演算子とヌル合体演算子を使用します。

PHP の三項演算子の紹介

PHP の if-else 条件の省略形として、三項演算子を使用できます。ただし、三項演算子は他のすべてのプログラミング言語で使用できます。三元という言葉は、3つの要素を持つことを意味します。したがって、三項演算子には 3つのオペランドがあります。最初に条件を記述します。これが最初のオペランドです。次に、記号 ? 条件が真の場合に評価される式で条件を区切ります。最後に、:記号は真実と偽の表現を分離します。構文は以下のとおりです。

condition ? trueExpression : falseExpression

ここで、condition は、値が評価される式です。オプション trueExpression は、condition が true の場合に実行される式であり、falseExpression は、condition が false の場合に実行されます。

if-else 条件の同等の三項演算をどのように書くことができるか見てみましょう。次の if-else 条件を見てみましょう。

サンプルコード:

$num = rand(0,10);
echo "The number is: " . "$num"."<br>";
if($num>5){
    echo "heads";
}else{
    echo "tails";
}

出力:

The number is: 9 
heads

ここでは、if-else 条件を使用して、rand() 関数を使用して頭または尾を表示しました。数値が 5 より大きい場合はヘッドを表示し、5 以下の場合はテールを表示します。ここで、rand(0,10)0 から 10 までの乱数を生成します。以下の例では、乱数は 9 であり、結果として頭が表示されます。考慮すべき重要なことは、条件演算子自体で echo ステートメントを使用できないことです。結果として条件が評価された後にのみ使用できます。上記のプログラムの三項演算子を使用して、if-else 条件を置き換えることができます。

コード例:

$num = rand(0,10);
echo "The number is: " . "$num"."<br>";
echo ($num>5)? "heads":"tails";

出力:

The number is: 6 
heads

以下の例では、乱数は 6 です。5 より大きいため、プログラムはヘッドを表示します。if-else 演算子と三項演算子の大きな違いは、echo ステートメントと三項演算子を使用できることです。このようにして、三項演算子を使用できます。

PHP での true/false 宣言に三項演算子を使用する

三項演算子を使用して、基本的な true または false の値を宣言することもできます。trueExpressionfalseExpression でブール値 truefalse をそれぞれ使用できます。たとえば、変数 $age を作成し、それを 14 の値に割り当てます。次に、別の変数 $can_vote を作成し、変数に三項演算を記述します。条件 $age>17 を記述し、値 true および falsetrueExpression および falseExpression として記述します。最後に、var_dump() 関数を使用して $can_vote 変数をダンプします。

出力セクションには、ブール型である false として出力が表示されます。このようにして、三項演算子を使用して、PHP で truefalse の値を宣言できます。

コード例:

$age= 14;
$can_vote = ($age>17 ? true : false);
var_dump($can_vote);

出力:

bool(false)
著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn