(PHP) Invalid arguments passed in ~の原因と対処法

(PHP) Invalid arguments passed in ~の原因と対処法

 

 

先日、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関数

implode関数とは、
第二引数に指定された配列の値それぞれを、第一引数に指定された文字で区切りながら連結した文字列を返却する関数だ。

implode(区切り文字, 配列): string

 

上記のように、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のエイリアス

後ほど調べたところ、
join関数は、implode関数のエイリアスだと公式マニュアルに書いてありました。

https://www.php.net/manual/ja/function.join.php

JOIN

この関数は次の関数のエイリアスです。 implode().

 

 

 

関連記事

(PHP) php7.2でcount()のWarningが出る【対処法】
(PHP) php7以降で、Illegal string offset のエラーが出る【対処法】
(PHP) Warning : unlink(): http does not allow unlinking in が出た時の対処法

 

 

 

 

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。