先日、PHPで以下のようなWarningが吐かれた。
PHP Warning: implode(): Invalid arguments passed in ~
本記事では上記、
「Invalid arguments passed in」のWarningエラーが出る原因と対処法を紹介する。
「Invalid arguments passed 」が出る原因
「Invalid arguments passed 」のWarning が出る原因は、
implode関数などを使用した際に、引数に不正な値が渡ってしまっているからである。
$arg = 'test'; //配列を渡していない → Warning $result = implode("\t", $arg);
上記のように、implode関数の引数には配列を渡さなければいけないところに、配列ではない値を渡すと、不正な値として「Invalid arguments passed 」のWarningエラーが出てしまう。
「Invalid arguments passed 」の対処法
「Invalid arguments passed 」のWarning の対処法は、
引数に適切な値を渡すようにすることだ。
上述した例でいくと、implode関数の引数には配列を渡すようにすれば良い
$args = array( 'test' ,'test2' ,'test3' ); //配列を渡している。OK。 $result = implode("\t", $args);
他にも、implodeと似たような機能を持つ関数で、
join関数と言うのもあるが、こちらでも同様のエラーが起こることが多いようだ※。
※後ほど調べたところ、
join関数は、implode関数のエイリアスだと公式マニュアルに書いてありました。
https://www.php.net/manual/ja/function.join.php
JOIN
この関数は次の関数のエイリアスです。 implode().
関連記事
implode関数とは、
第二引数に指定された配列の値それぞれを、第一引数に指定された文字で区切りながら連結した文字列を返却する関数だ。