PHP-在__construct中设置一个数组


PHP - Set a array in the __construct

我正在创建一个上传类,我想知道这是否正确。。例如

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)

我认为拥有两个数组的问题并不酷。。我不知道。。也许你帮我这件事变得更好了。。对不起代码!HAHA

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

只需将该数组分配给UploadClass::type,就可以完成所有设置:

$this->type = $type;