勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHP8系で関数の引数が設定しやすくなる名前付き引数について

  PHP

PHP8系で名前付き引数が導入されたということを最近知った。今までは「第〇引数」のように位置で指定する必要があり「第1は飛ばして第2引数を指定したいのに……」というケースが多々あって面倒だったため連想配列を一つ渡して関数内で色々チェックしていたが、名前付き引数はその辺を解決できるっぽい。以下に利用方法をメモ。

 

利用方法

ソースコード

<?php
//型宣言無し
function testFunc($name, $age, $flg){
    echo $name . 'さんの年齢は' . $age . '歳です。フラグは' . $flg . 'です。';
}

//普通に使う場合
testFunc(name: '山田', age: 20, flg: true); //山田さんの年齢は20歳です。フラグは1です。

//引数の順番を変えても大丈夫
testFunc(age: 30, flg: false, name: '鈴木'); //鈴木さんの年齢は30歳です。フラグはです。


//型宣言あり
function testFunc2(string $name = '', int $age = 0, bool $flg = false){
    echo $name . 'さんの年齢は' . $age . '歳です。フラグは' . $flg . 'です。';
}

//普通に使う場合
testFunc2(name: '山田', age: 20, flg: true); //山田さんの年齢は20歳です。フラグは1です。

//型が合っていないのでエラー
testFunc2(name: 1, age: '山田', flg: 3);

 

リファレンス

名前付き引数

https://www.php.net/manual/ja/functions.arguments.php#functions.named-arguments

 

所感

まだPHP7系の環境も多いので完全に移行するのは難しいかも。ただ使い方は覚えておきたいところ。

 - PHP

  関連記事

PHPでアクセスIPからランダム英数字のIDを作成
PHPでアクセスIPからランダム英数字のIDを作成

PHPで掲示板などにあるようなアクセスIPからランダム英数字のIDを作成したかっ ...

CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法
CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさせる方法

CodeIgniter4で特定のページにアクセスがあった際に301リダイレクトさ ...

PHPで配列に特定の値が入っているか検索
PHPで配列に特定の値が入っているか検索

PHPで配列に特定の値が入っているか検索して trueかfalseを返したい、と ...

TCPDF「Could not include font definition」エラーの対処方法
TCPDF「Could not include font definition」エラーの対処方法

TCPDFでフォントを「arialunicid0」に指定したところ「TCPDF ...

formにGoogle reCAPTCHA v3を組み込み、PHPでスコア判定する方法
formにGoogle reCAPTCHA v3を組み込み、PHPでスコア判定する方法

だいぶ前にGoogle reCAPTCHA v2をformに組み込むという記事を ...