致命错误:无法重新分配自动全局变量


Fatal error: Cannot re-assign auto-global variable

致命错误:无法在中重新分配自动全局变量_FILESC: 第1395行上的''examplep''htdocs''user''utils''CommonUtils.php

1395行的代码是

public static function saveAvatar($code, $pilotid, $_FILES) {

函数参数不能使用$_FILES,它是保留字,用它代替

public static function saveAvatar($code, $pilotid, $files) { }

并且为了调用通过像这个一样的CCD_ 2

saveAvatar($code, $pilotid, $_FILES);

您也可以直接访问$_FILES,而无需在函数内部的函数参数中传递它。

您正试图在本地scpe中设置一个名为$_FILES的变量作为saveAvatar()方法的参数;但不能,因为它是一个特殊的超全局。

将线路更改为

public static function saveAvatar($code, $pilotid) {

$_FILES超全局仍然可用于该方法,因为它是一个超全局

我也面临着同样的问题。然后我刚从变量列表中删除了$_FILES变量,我的网站又开始工作了。

通常我们不能重新分配$_Files,这意味着我们不能将自动超级全局变量作为参数或函数传递。但我们有另一种解决方案。

将文件作为参数传递

  function ImageProcess(array $_File){
           $image        = $_FILES["file"]["name"];
           $uploadedfile = $_FILES['file']['tmp_name'];
           //Write your code here...
  }

调用以自动全局变量为参数的函数。

  if ($_SERVER['REQUEST_METHOD'] == "POST") {
      if(isset($_FILES['file'])){
         echo ImageProcess($_FILES['file']);
      }
  }

上传的表格

    <form method="post" action="<?php $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
       <input type="file" name="file" /> 
       <button type="submit">Update &amp; Save</button>
    </form>