PHP动态new变量类名要注意的问题
php是可以new一个变量类名的,但是不会带上命名空间,所以我们要自己先在变量名前加上命名空间,否则就报错了!
例:
//new 变量类名不会带上命名空间,所以自己把命名空间加上
$className = __NAMESPACE__.'\\Upload'.ucfirst($storageType);
//new 变量类名,并调用对应类的upload()方法上传文件
$link = (new $className(static::$config, $this->argv))->upload();
这是我自己写的一个用于上传图片到云服务器的小工具,支持8种云,由于是借助Mac的Automator的,所以只能在Mac上用,有兴趣可以看看源码,其中上述代码就是在uploader/Upload.php 这个文件里用到的代码。
去github查看源码:PicUploader
觉得文章对你有用的话鼓励一下我吧