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

时间:2013-02-19 09:47:48

标签: php

  

致命错误:无法重新分配自动全局变量_FILES   第1395行的C:\ xampp \ htdocs \ user \ utils \ CommonUtils.php

第1395行的代码是

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

4 个答案:

答案 0 :(得分:11)

你不能使用$_FILES作为保留字的函数参数,而不是使用

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

并且用于调用传递$_FILES这样的

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

您也可以直接访问$_FILES而不将其传递给函数内的函数参数。

答案 1 :(得分:5)

您尝试在local scpe中设置一个名为$ _FILES的变量作为saveAvatar()方法的参数;但不能因为它是特殊的超级全球之一。

将行更改为

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

将文件作为参数传递

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

使用auto global-variable作为参数调用该函数。

  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>