PHP | array_push(): Argument #1 ($array) must be of type array エラーの原因と修正案

PHP,PHP エラー

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

Fatal error: Uncaught TypeError: array_push(): Argument #1 ($array) must be of type array, null given ~
引数 #1 ($array) は配列型でなければなりません

確認環境

エックスサーバー
PHP 8.016

array_push(): Argument #1 ($array) must be of type array エラーの発生原因

「array_push(): Argument #1 ($array) must be of type array」というPHPエラーは定義されていない変数、または配列型以外で定義されている変数に対してarray_push()関数で値を追加しようとした際に発生するエラーです。

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

例えば、以下のPHPコードを実行する場合に「array_push(): Argument #1 ($array) must be of type array」エラーは発生します。

変数が定義されていない(null)場合は以下のエラーが出力されます。

$a = '';
array_push($a, 'Apple');

Fatal error: Uncaught TypeError: array_push(): Argument #1 ($array) must be of type array, null given ~

変数が文字列として定義されている場合は以下のエラーが出力されます。

Fatal error: Uncaught TypeError: array_push(): Argument #1 ($array) must be of type array, string given ~

変数が数値として定義されている場合は以下のエラーが出力されます。

Fatal error: Uncaught TypeError: array_push(): Argument #1 ($array) must be of type array, int given ~

array_push(): Argument #1 ($array) must be of type array エラーの修正案

「array_push(): Argument #1 ($array) must be of type array」を修正するには、array_push()関数で配列の値を追加しようとしている変数が配列として定義されているかどうか確認します。

$a = [];
array_push($a, 'Apple');

PHP,PHP エラー

Posted by Yousuke.U