PHP | Argument #2 ($subject) must be of type string エラーの原因と修正案

PHPで発生するエラー「Argument #2 ($subject) must be of type string」が発生する原因と対処・修正案について紹介しています。

Fatal error: Uncaught TypeError: preg_split(): Argument #2 ($subject) must be of type string, array given in ~
致命的なエラー:キャッチされていないTypeError:preg_split():第二引数は文字列型である必要があります、配列が指定されています

Fatal error: Uncaught TypeError: preg_match(): Argument #2 ($subject) must be of type string, array given in ~
致命的なエラー:キャッチされていないTypeError:preg_match():第二引数は文字列型である必要があります、配列が指定されています

Argument #2 ($subject) must be of type string エラーの発生原因と修正案

「」というPHPエラーは第二引数に指定する値が必要とする文字列型ではない際に発生するエラーです。

preg_split()関数やpreg_match()関数ほか、多くの関数で同じエラーが発生する場合があります。

このエラーは致命的なエラー(Fatal error)に分類されています。

例えば、preg_split()関数で分割対象としている値が文字列型ではなく配列だった場合は「Argument #2 ($subject) must be of type string, array given in ~」とエラーが発生します。

$data = [];
$array = preg_split('//', $data);

このエラーを修正するにはエラーの発生箇所で記述している関数の第二引数の値を確認します。

PHP,PHP エラー

Posted by Yousuke.U