PHP - 在 __construct 中设置一个数组

PHP - Set a array in the __construct

我正在创建上传 class 我想知道这是否正确..例如

private $fieldname; //setting name in form
    private $type = array(); //type files: text/plain','application/msword','application/pdf
    private $folder; //folder where save my files
    private $filename; //filename :)

    public function __construct($fieldname,$type,$folder,$filename){
        $this->fieldname = $fieldname;
        $this->type[] = $type;
        $this->folder = $folder;
        $this->filename = $filename;        
    }

当我实例化我的对象时

$upload = new UploadClass('file',['pdf','photo'],'folder','filename');

结果不尽如人意

object(UploadClass)[1]
  private 'fieldname' => string 'file' (length=4)
  private 'type' => 
    array (size=1)
      0 => 
        array (size=2)
          0 => string 'pdf' (length=3)
          1 => string 'photo' (length=5)
  private 'folder' => string 'folder' (length=6)
  private 'filename' => string 'filename' (length=8)

我认为有两个数组的问题不太酷..我不知道..也许你帮助我这会变得更好..对不起代码!哈哈

因为 UploadClass::type 被声明为一个数组,而您使用 $this->type[] = $type; 向其中添加一个元素,您会看到该结果(即嵌套数组)。基本上,您将该数组添加到 UploadClass::type.

的第一个元素

只需将该数组分配给 UploadClass::type,一切就绪:

$this->type = $type;