勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ

PHPでCannot re-assign auto……のエラー

   2024/02/20  PHP

PHPバージョンアップに伴い「Fatal error: Cannot re-assign auto-global variable _FILES in(翻訳:致命的なエラー: 自動グローバル変数 _FILES を再割り当てできません)」というエラーが発生していた。対処方法をメモ。

 

原因

スーパーグローバル変数をパラメータ名に使っていたがPHP5.4以降だとfatal errorになる。以下リファレンス。

http://php.net/manual/ja/migration54.incompatible.php

 

対応方法

#以下だとエラー
function hoge( $_FILES ){
    
}

#以下に変更する。$fileは適当な名前で設定する
function hoge( $file ){
    
}

 

まとめ

関数のパラメータ名にグローバル変数を使用してはいけない。今回は$_FILESだったけど$_POSTや$_GETなどもダメなので注意する。

 - PHP

  関連記事

PodmanにComposerを導入し、パッケージをインストールする方法
PodmanにComposerを導入し、パッケージをインストールする方法

先日Podmanで導入したapache-phpに各種PHPモジュールを追加したが ...

PHPで作成したプログラムをcron設定し自動実行する方法
PHPで作成したプログラムをcron設定し自動実行する方法

cronの設定方法。サーバー側での設定とPHP側での書き方を以下にメモ。 &nb ...

PHPで配列をGETパラメータ化、GETパラメータを配列化する方法
PHPで配列をGETパラメータ化、GETパラメータを配列化する方法

PHPで配列を「name=hoge&id=1&pass=fdkn ...

PHPにてmicrotimeで秒数を測定した際「xxxxxE-5」のような値になる場合の対応方法
PHPにてmicrotimeで秒数を測定した際「xxxxxE-5」のような値になる場合の対応方法

PHPで過去記事を参考の上、あるプログラムの処理にかかった時間を測定しようとした ...

phpdotenvライブラリを使用してPHPで.envファイルを読み込ませる方法
phpdotenvライブラリを使用してPHPで.envファイルを読み込ませる方法

CodeIgniterを勉強していた際に各種設定は「.env」というファイルに記 ...