ブログ

BLOG

PHP8 で call_user_func_array でエラーが出た

2023/05/14

PHP7.4 から PHP8 に変更したらこんなエラーが出た。

Fatal error: Uncaught Error: Unknown named parameter {変数名} in {ファイル名と行数}

ファイル名と行数から call_user_func_array という関数部分でエラーになってそうだった。

いろいろ調べた結果、、、⌛️

PHP8 から名前付き引数が導入され、それに伴って、call_user_func_array 関数も連想配列を第二引数に持ってくると key が名前付き引数として扱われるみたいでエラーになっていたみたいです。

PHP7.4 では、連想配列を第二引数に持ってきた場合、 key 部分は無視され、単純な配列として扱われていたようです。

function foo($a) {
  echo $a;
}

$parameters = [
  ["key"] => "Value"
];

call_user_func_array('foo', $parameters);
// PHP8:
// Fatal error: Unknown named parameter $key in ... となる。
// PHP8 で名前付き引数で扱われ、 foo 関数に $key がないため、エラーとなる。
// そのため、 $parameters の key を a に変えると正常に動く。

// PHP7.4:
// Value ← keyが無視されて、 ['Value'] のような形になるため、通る。

お問い合わせ・ご相談CONTACT

オクワスでは、Webを通して魅力を最大限に伝えるお手伝いをしております。ホームページ制作やWebからの集客などでのお困りごと、Web開発で人手が足りないなどございましたら一度お気軽にご連絡ください。

お問い合わせフォームまたは𝕏のDMからご相談お受けしております。

お問い合わせフォームへDMからご連絡ください
© 2015 - 2024 Okuda Kouki