PHPの三項演算子とヌル合体演算子(??)の違いをわかりやすく解説
三項演算子とは
三項演算子は、if-else文を1つの式にまとめて記述するための演算子です。条件分岐を簡潔に書けるため、短い条件判定をコードの中に埋め込みたい場面でよく活用されます。
構文
(条件式) ? 式1 : 式2;
同等のif-else文
if(条件式) {
return 式1;
}
else {
return 式2;
}
条件式がtrueの場合は式1の結果を返し、falseの場合は式2の結果を返します。なお、条件式や各式にvoidを指定することはできません。
ヌル合体演算子とは
ヌル合体演算子(??)は、変数がnullの場合に代わりの値を返すための演算子です。PHP 7以降で利用可能になり、isset()による存在チェックと値の取得を1行で書けるようになりました。
構文
(変数) ?? 式;
同等のコード
if(isset(変数)) {
return 変数;
}
else {
return 式;
}
変数がnull(または未定義)の場合は、式の結果を返します。isset()による存在チェックも兼ねている点が大きな特徴です。
サンプルコード
<!DOCTYPE html>
<html>
<head>
<title>PHPサンプル</title>
</head>
<body>
<?php
// $_GET['username']の値を取得し、
// 値が渡されていない場合は 'not passed' を返す
$username = $_GET['username'] ?? 'not passed';
print($username);
print("<br/>");
// 三項演算子を使った同等のコード
$username = isset($_GET['username']) ? $_GET['username'] : 'not passed';
print($username);
print("<br/>");
?>
</body>
</html>
実行結果
not passed not passed
このように、ヌル合体演算子を使えば、isset()と三項演算子を組み合わせた冗長なコードを、より短く読みやすい形で記述できます。特に、フォーム入力やクエリパラメータなど、値が存在するかどうか不明な変数を扱う際に便利です。
-
Pythonのセット演算入門|演算子とメソッドの違いを徹底解説
Pythonのセット(set)は、重複しない要素を管理するための組み込みデータ型です。和集合・積集合・差集合・対称差といった集合演算は、対応するメソッドを呼び出す方法と演算子を使う方法の2通りで実行できます。この記事では、それぞれの具体的な書き方と、両者の違いについて解説します。 和集合(Union) union() メソッドを使う場合 >>> s1 = {1, 2, 3, 4, 5} >>> s2 = {4, 5, 6, 7, 8} >>> s1.union(s2) {1, 2, 3, 4, 5, 6, 7, 8} >>&
-
Pythonの「=」と「==」の違いとは?代入と比較の使い分けを徹底解説
Pythonにおける「=」と「==」の基本的な違いPythonでは「=」と「==」はまったく異なる役割を持つ記号です。初心者が混同しやすいポイントですが、それぞれの意味を正しく理解しておくことが重要です。「=」は代入演算子Pythonにおいて「=」記号は代入演算子として定義されています。左辺には1つの変数を、右辺には式を置く必要があり、右辺の式が評価された結果の値が、左辺の変数に格納されます。つまり、式と変数名は入れ替えて使うことはできません。>>> a=10 >>> b=20 >>> c=a+b >>> a,b,c (1