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'] のような形になるため、通る。