猿问

有关thinkphp3.2.3版本里的Upload类的一个问题?

private $config = array(
        'mimes'         =>  array(), //允许上传的文件MiMe类型
        'maxSize'       =>  0, //上传的文件大小限制 (0-不做限制)
        'exts'          =>  array(), //允许上传的文件后缀
        'autoSub'       =>  true, //自动子目录保存文件
        'subName'       =>  array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
        'rootPath'      =>  './Uploads/', //保存根路径
        'savePath'      =>  '', //保存路径
        'saveName'      =>  array('uniqid', ''), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
        'saveExt'       =>  '', //文件保存后缀,空则使用原后缀
        'replace'       =>  false, //存在同名是否覆盖
        'hash'          =>  true, //是否生成hash编码
        'callback'      =>  false, //检测文件是否存在回调,如果存在返回文件信息数组
        'driver'        =>  '', // 文件上传驱动
        'driverConfig'  =>  array(), // 上传驱动配置
    );
     public function __construct($config = array(), $driver = '', $driverConfig = null){
        /* 获取配置 */
        $this->config   =   array_merge($this->config, $config);
        
     }
    这个类在初始化时候把所有的配置都放在了这个数组属性中,可是我在看官方文档的时候却可以这样以调用类属性的方式来设置这些配置,如:
    $upload = new \Think\Upload();// 实例化上传类
    $upload->maxSize   =     3145728 ;// 设置附件上传大小
    
    看到这里我就不明白了,这个maxSize只是config数组属性里的一个下标按理说应该$upload->config['maxSize']这样赋值啊,怎么可以直接以属性的方式赋值呢??


Bill0123
浏览 2423回答 1
1回答

乔帮主

不知道楼主注意到这个没: $this->config   =   array_merge($this->config, $config);这个就是将$config 进行了重新设置,对吧?然后成为了这个类的属性。那么当实例化这个类之后,直接调用这个属性没问题啊!
随时随地看视频慕课网APP
我要回答