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

PHP 8の名前付き引数(Named Arguments)とは?特徴と使い方を実例で解説


PHP 7.xまでのバージョンでは、関数へ渡す引数は「位置パラメータ」として扱われていました。これは、1番目の引数が必ず1番目のパラメータに割り当てられる仕組みで、指定されなかった引数にはデフォルト値が自動的に適用されます。

一方、PHP 8では名前付き引数(Named Arguments)が導入され、引数の位置ではなくパラメータ名を指定して値を渡すことが可能になりました。これにより、引数の順序を気にする必要がなくなり、デフォルト値を持つ引数を柔軟にスキップできます。さらに、コード自体が何を意味しているのか分かりやすい「自己文書化(self-documenting)」の効果も得られます。

PHP 8の名前付き引数の主な特徴

  • 引数は順序に依存せず、コードが自己文書化される。

  • オプションのパラメータをスキップし、必要なパラメータだけを指定できる。

サンプルコード:名前付き引数の使用例

<?php
    function sample($num = 1, $value = 5){
        echo "Number: ", $num;
        echo " ";
        echo "Value: ", $value;
    }
    sample(value: 5, num: 30); // 順序を変えて名前付き引数を指定
?>

出力結果

Number: 30 Value: 5

上記の例では、関数定義時のパラメータ順序($num → $value)とは異なる順序で引数を渡しています。しかし、呼び出し時に指定した引数名(num、value)が関数定義内のパラメータ名と照合されるため、エラーが発生することなく正しく実行されます。

組み込み関数でも活用できる

名前付き引数はユーザー定義関数だけでなく、PHPの組み込み関数でも利用できます。例えば、htmlspecialchars() の第2引数だけを変更したい場合、従来の方法では途中の引数も含めてすべて指定する必要がありましたが、名前付き引数を使えば次のように簡潔に書けます。

htmlspecialchars($string, double_encode: false);

このように、名前付き引数を活用することで、不要な引数を省略しつつ意図したパラメータだけを明示的に指定できるため、コードの可読性と保守性が大きく向上します。


  1. JavaScript関数で名前付き引数を使う方法|分割代入で簡単に実現するテクニック

    JavaScriptにおける名前付き引数とは? Pythonなどの言語には「名前付き引数(キーワード引数)」という機能が標準で備わっていますが、JavaScriptにはこの機能が組み込まれていません。しかし、オブジェクトの分割代入(Destructuring)を活用することで、名前付き引数と同じ挙動を簡単に実現できます。 基本的な仕組み 関数の引数としてオブジェクトを1つ受け取り、その中から必要なプロパティを分割代入で取り出します。各プロパティにはデフォルト値も同時に指定できるため、引数が省略された場合でもエラーにならず安全に処理できます。 サンプルコード 以下は、オブジェクトを引数として渡し

  2. JavaScriptで名前付き引数を実現する方法|分割代入を使ったサンプルコード付き

    JavaScriptには、Pythonなどの言語に存在するような「名前付き引数(キーワード引数)」の専用構文は用意されていません。しかし、オブジェクトの分割代入(Destructuring)とデフォルト値を組み合わせることで、名前付き引数とまったく同じ挙動を簡単に実現できます。 名前付き引数とは? 通常のJavaScript関数は、引数を「位置(順番)」で受け取ります。この方式では、引数の数が多い場合に順番を間違えやすく、コードの可読性も低下します。 そこで、オブジェクトを1つだけ引数として渡し、そのプロパティ名で値を指定する方法がよく使われます。こうすることで、引数の順番に依存しない、意図が