PHP の疑問符記号
PHPでは、疑問符?
オペレータは三項演算子または条件付き三項演算子と呼ばれています。この記事では、PHPの三項演算子について詳しく説明します。
PHPの三項演算子の紹介
三項条件演算子?
は、条件式または三項演算子とも呼ばれます。以下の構文を持ちます。
$variable = (condition) ? value_if_true : value_if_false;
以下は各構成要素の説明です。
-
condition
: 評価されるブール式です。 -
value_if_true
:condition
がtrue
の場合に$variable
に割り当てられる値です。 -
value_if_false
:condition
がfalse
の場合に$variable
に割り当てられる値です。
三項演算子はcondition
を評価し、true
であればvalue_if_true
を$variable
に割り当てます。それ以外の場合はvalue_if_false
を$variable
に割り当てます。
コードの例:
<?php
$num = 10;
$result = ($num % 2 == 0) ? "Even" : "Odd";
echo "The number $num is $result.";
?>
出力:
The number 10 is Even.
三項演算子を使用して、コードの長さを短くし、可読性を向上させるために、if-else
構造の代わりに使用することができます。シンプルな条件式を書くために使用することもできます。
コードの例:
<?php
$count = (true) ? 1 : 0;
if (true)
{
$count = 1;
}
else
{
$count = 0;
}
echo $count;
?>
出力:
1
ただし、三項演算子を連鎖させたり入れ子にする場合、コードの読みやすさに影響を与えることがあります。また、三項演算子の欠点として、サブ式にブレークポイントを設定できないため、デバッグが困難であることも挙げられます。
Ternary Operatorを使用してTrue
とFalse
の式を評価する方法
三項演算子の使用方法について見ていきます。以下の例では、true
の式を評価し、それに応じてコードブロックを実行します。
canVote()
関数は、人が投票できるかどうかを判断します。まず、変数$age
が18
以上かどうかが評価されます。
次に、canVote()
関数を引数として値21
を渡すことで、投票の合法年齢として評価されます。ここでは、式がtrue
と評価され、2番目の式が実行されます。
コードの例:
<?php
function canVote($age){
echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>
canVote()
関数は、人が投票できるかどうかを判断します。まず、変数$age
が18
以上かどうかが評価されます。
次に、canVote()
関数を引数として値21
を渡すことで、投票の合法年齢として評価されます。ここでは、式がtrue
と評価され、2番目の式が実行されます。
出力:
you can vote
次の例では、18
未満の値を指定した場合、比較式はfalse
と評価されます。したがって、3番目の式、投票できません
が表示されます。
コードの例:
<?php
function canVote($age){
echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(17);
?>
出力:
you cannot vote
他のケースでは、評価式に基づいて返される値はfalse
となります。例えば、式がnull
、Nan
、0
、または空の値を返す場合、式はfalse
として評価されます。
次の例は、falsy
値の条件を示しています。これらの値が評価されると、三項演算子は3番目の式を実行します。
コードの例:
<?php
function Car($name){
echo $name?$name:"no name";
echo "<br>";
}
Car("Tesla");
Car(null);
Car("");
Car(0);
?>
出力:
Tesla
no name
no name
no name
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