PHPのエルビス演算子(?:)とNull合体演算子(??)の便利な使い方を初心者向けに徹底解説
生徒
「PHPで変数に値が入っていなかったときに、代わりの値を表示する方法はありますか?」
先生
「ありますよ。PHPにはエルビス演算子とNull合体演算子という便利な機能があります。」
生徒
「名前が難しそうですが、初心者でも使えますか?」
先生
「もちろんです。if文を短く書ける便利な機能なので、初心者のうちから覚えておくと役立ちます。」
生徒
「どんな場面で使うんですか?」
先生
「フォーム入力や会員情報の表示、検索条件の初期値設定などでよく使います。それでは詳しく見ていきましょう。」
1. エルビス演算子とNull合体演算子とは?
PHPには条件によって値を切り替えるための便利な演算子があります。その中でもよく使われるのがエルビス演算子とNull合体演算子です。どちらも変数に値が入っているか確認し、値がなければ別の値を利用するために使われます。
Webアプリケーション開発では、ユーザーが入力しなかった場合や、データベースから値が取得できなかった場合などがあります。そのような場面で毎回長いif文を書くと、プログラムが読みにくくなります。
エルビス演算子やNull合体演算子を使うと、同じ処理を短く分かりやすく書けます。PHP初心者の方は、まず「値があればその値を使う」「値がなければ代わりの値を使う」という考え方を理解しましょう。
2. エルビス演算子とは?
エルビス演算子とは、三項演算子を省略して書ける仕組みです。三項演算子とは、条件によって異なる値を返すための演算子です。
エルビス演算子は、変数に値が入っていればその値を利用し、空文字やゼロやfalseなどの場合は別の値を利用します。
例えばニックネームが入力されていればその名前を表示し、入力されていなければ「ゲスト」と表示するような処理に利用できます。
$name = "田中";
$result = $name ?: "ゲスト";
echo $result;
田中
この例では変数に値が入っているため、そのまま表示されます。エルビス演算子は短く書けるため、PHP開発でよく利用されています。
3. エルビス演算子で値が空の場合
エルビス演算子の特徴は、値が空の場合に代替値を返すことです。空とは、空文字やゼロやfalseなどを指します。
入力フォームで名前が未入力だった場合などによく利用されます。
$name = "";
$result = $name ?: "ゲスト";
echo $result;
ゲスト
このように値が空の場合は、右側の値が利用されます。ユーザー名や商品名などの初期値設定にも便利です。
PHPのエルビス演算子は、短いコードで分かりやすく記述できるため、実務でも利用されることがあります。
4. Null合体演算子とは?
Null合体演算子は、PHP7から利用できる便利な演算子です。記号は二つの疑問符を使用します。
この演算子は、変数が存在しない場合やnullの場合に代替値を返します。エルビス演算子と似ていますが、判定条件が異なります。
特にフォーム送信や配列の値取得で活躍します。存在しない変数を参照してもエラーを避けやすくなります。
$name = null;
$result = $name ?? "ゲスト";
echo $result;
ゲスト
この例では変数がnullのため、右側の値が利用されています。
5. エルビス演算子とNull合体演算子の違い
初心者が混乱しやすいポイントが、両者の違いです。どちらも代替値を設定できますが、判定基準が異なります。
| 項目 | エルビス演算子 | Null合体演算子 |
|---|---|---|
| 空文字 | 代替値を使用 | 元の値を使用 |
| ゼロ | 代替値を使用 | 元の値を使用 |
| null | 代替値を使用 | 代替値を使用 |
| 未定義変数 | 警告の可能性 | 安全に利用可能 |
エルビス演算子は空かどうかを確認します。一方でNull合体演算子はnullかどうかだけを確認します。この違いを理解して使い分けることが重要です。
6. フォーム入力での活用例
PHPのフォーム処理では、入力値が存在するかどうかを確認する場面が頻繁にあります。
Null合体演算子を使うと、未入力でも安全に値を取得できます。
$name = $_POST["name"] ?? "";
echo $name;
入力された名前
この書き方はPHPのフォーム処理で非常によく利用されます。未定義エラーを防げるため、初心者にもおすすめです。
7. 配列の値取得で活用する方法
配列から値を取得する場合にもNull合体演算子は便利です。存在しないキーを取得するときのエラー対策になります。
$user = [
"name" => "田中"
];
echo $user["age"] ?? "年齢未登録";
年齢未登録
このように、配列のキーが存在しない場合でも安全に代替メッセージを表示できます。
PHPの会員管理システムや商品管理システムなどでも頻繁に利用されるテクニックです。
8. 実務でよく使われる場面
PHPのエルビス演算子とNull合体演算子は、実務開発でも非常によく利用されています。特にフォーム入力処理、ログイン情報表示、検索条件保持、会員情報表示、商品情報表示などで活躍します。
コードが短くなり、可読性も向上します。可読性とは、プログラムの読みやすさのことです。読みやすいプログラムは保守しやすく、バグも見つけやすくなります。
PHP初心者のうちはif文で書いても問題ありませんが、エルビス演算子やNull合体演算子を覚えることで、より実践的なコードを書けるようになります。
特にNull合体演算子は現代のPHP開発で非常によく利用されているため、ぜひ使い方を覚えておきましょう。