勉強したことのメモ

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で画像アップロード、リサイズ、形式変換(jpg->webp等)はclass.upload.phpが便利
PHPで画像アップロード、リサイズ、形式変換(jpg->webp等)はclass.upload.phpが便利

今までPHPで画像関連の処理を行う場合、リサイズの時のみsmart_resize ...

他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法
他所のサーバからWordPressの記事情報をpostIDを指定して取得する方法

他所のサーバからWPの記事IDを指定した上で、当該IDのタイトル・アイキャッチ画 ...

PHPでファイルのダウンロード時に速度制限をかける方法(分割ダウンロード)
PHPでファイルのダウンロード時に速度制限をかける方法(分割ダウンロード)

オンラインストレージサービス等で有料会員じゃない場合、ファイルのダウンロード時に ...

PHPでパーミッションの変更
PHPでパーミッションの変更

chmodというみたことが無いPHP関数があったのでメモ。 ■参考サイト htt ...

PHPでソーシャル(SNS)ログインする方法2018
PHPでソーシャル(SNS)ログインする方法2018

久しぶりにソーシャル(SNS)ログインを実装する機会があった。以前に対応方法を書 ...