勉強したことのメモ

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

  関連記事

PHPでdo-while(0)構文を利用する際のメリット
PHPでdo-while(0)構文を利用する際のメリット

あるソースコード上にdo-whileという構文が使われていた。見たことのない構文 ...

PHPで「php-qrcode-detector-decoder」ライブラリを使用してQRコードをデコードする方法
PHPで「php-qrcode-detector-decoder」ライブラリを使用してQRコードをデコードする方法

PHPでQRコードの画像をデコードし、値を変数等に格納したい。何とかならないか調 ...

PHPにてユニークかつランダム英数字の文字列を作成する方法
PHPにてユニークかつランダム英数字の文字列を作成する方法

PHPでユニークな文字列を作成したかった。MySQLとかのオートインクリメントの ...

PHP8系の環境でdBug.phpライブラリが使用できない場合の対応方法
PHP8系の環境でdBug.phpライブラリが使用できない場合の対応方法

先日メモしたdBug.phpをPHP8系の環境で試すと動作しなかった。ただエラー ...

PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズ
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズ

PHPで縦横どちらかが指定の長さを超えた場合、 比率を保ったままリサイズしたかっ ...