PHP の疑問符記号

Subodh Poudel 2023年9月19日
  1. PHPの三項演算子の紹介
  2. Ternary Operatorを使用してTrueFalseの式を評価する方法
PHP の疑問符記号

PHPでは、疑問符?オペレータは三項演算子または条件付き三項演算子と呼ばれています。この記事では、PHPの三項演算子について詳しく説明します。

PHPの三項演算子の紹介

三項条件演算子?は、条件式または三項演算子とも呼ばれます。以下の構文を持ちます。

$variable = (condition) ? value_if_true : value_if_false;

以下は各構成要素の説明です。

  • condition: 評価されるブール式です。

  • value_if_true: conditiontrueの場合に$variableに割り当てられる値です。

  • value_if_false: conditionfalseの場合に$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を使用してTrueFalseの式を評価する方法

三項演算子の使用方法について見ていきます。以下の例では、trueの式を評価し、それに応じてコードブロックを実行します。

canVote()関数は、人が投票できるかどうかを判断します。まず、変数$age18以上かどうかが評価されます。

次に、canVote()関数を引数として値21を渡すことで、投票の合法年齢として評価されます。ここでは、式がtrueと評価され、2番目の式が実行されます。

コードの例:

<?php
function canVote($age){
    echo $age>=18 ?"you can vote": "you cannot vote";
}
canVote(21);
?>

canVote()関数は、人が投票できるかどうかを判断します。まず、変数$age18以上かどうかが評価されます。

次に、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となります。例えば、式がnullNan0、または空の値を返す場合、式は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 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

関連記事 - PHP Operator