PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのトレーリングカンマ(末尾カンマ)とは?PHP 8での使い方を実例付きで解説

トレーリングカンマ(trailing comma:末尾カンマ)は、PHP 7.2から配列で利用できるようになった記法です。配列の最後の要素の後にカンマを付けられるため、すでに末尾にカンマがある行であれば、その行を修正することなく新しい要素を追加できます。

PHP 8.0以前のトレーリングカンマ

PHP 8より前のバージョンでは、関数やメソッドのパラメータリストの最後にカンマを付けることはできませんでした。

function($x,$y,$z){
}

PHP 8.0でのトレーリングカンマ

PHP 8では、パラメータリストの最後にもトレーリングカンマを付けられるようになりました。具体的には、関数やメソッドのパラメータリスト、およびクロージャの use リストでトレーリングカンマが使用可能です。

function($x,$y,$z,){}

例:関数・メソッド・クロージャ呼び出しでトレーリングカンマを使う

<?php
    function EmployeeAdd(string $country, string $city, string $street): string {
        return $country . ', ' . $city . ', ' . $street;
    }
    $result = employeeAdd(
        'India',
        'Bangalore',
        'Indira Nagar',
    );
    print_r($result);
?>

出力結果

India, Bangalore, Indira Nagar

例:複数の引数を持つ関数でのトレーリングカンマ

引数が多い関数では、各引数を改行して縦に並べると読みやすくなります。このとき最後の引数にもカンマを付けておけば、後から引数を追加しても直前の行を編集する必要がありません。

<?php
    function method_with_many_arguments(
        $x,
        $y,
        $z,
    )
    {
        var_dump("shows valid syntax");
    }
    method_with_many_arguments(
        1,
        2,
        3,
        4,
    );
?>

出力結果

string(18) "shows valid syntax"

トレーリングカンマを使うメリット

  • 要素や引数の追加・削除時に既存の行を変更する必要がないため、Gitなどの差分(diff)が最小限になる
  • コードレビューで実際の変更箇所を把握しやすくなる
  • 縦に並ぶリストの書式が統一され、可読性が向上する

なお、トレーリングカンマはPHP 7.2で配列に導入され、PHP 7.3で関数呼び出しに拡張され、PHP 8.0でパラメータリストやクロージャの use リストにも対応しました。バージョンごとの対応範囲を理解した上で活用すると、保守性の高いコードを書くことができます。

  1. PHPファイルとは?開き方・編集・変換方法をわかりやすく解説

    PHPファイルとは .phpという拡張子を持つファイルは、PHP(Hypertext Preprocessor)のソースコードが記述された「PHPソースコードファイル」です。主にWebページのファイルとして利用され、Webサーバー上で動作するPHPエンジンによってHTMLを生成します。 ブラウザに表示されるのは、PHPエンジンがコードから生成したHTMLコンテンツです。PHPコードはサーバー側で実行されるため、PHPページにアクセスしてもコードそのものは見えず、サーバーが生成したHTMLだけを受け取る仕組みになっています。 なお、PHPソースコードファイルの中には、.phtml、.php3、.

  2. PHPにおけるメソッドオーバーロードとは?__call()マジックメソッドによる実装方法を解説

    メソッドオーバーロード(Method Overloading)は、オブジェクト指向プログラミング(OOP)における重要な概念の一つで、複雑なアプリケーションを効率的かつ柔軟に構築するための手法です。関数オーバーロードやメソッドオーバーロードとは、同じ名前を持つ複数のメソッドを定義し、引数として受け取るパラメータの型や数に応じてそれぞれ異なる動作を行わせる機能のことです。この概念はPHP以外の多くのプログラミング言語でサポートされており、「静的ポリモーフィズム(静的多態性)」、すなわちメソッドオーバーロードと呼ばれています。例:他言語的なオーバーロードの書き方まず、具体的な例を見てみましょう。&