我使用这个名称空间
use \App\Model\PostsModel;
和我试图访问类像这样的另一个类:
public $model = PostsModel::class;
该出把vardump
的是“应用程序\型号\ PostsModel”和vardump
显示,它的类型为字符串。
我寻觅了很多,但我怎么也找不到投/串转换成stdClass的。这是我曾尝试:
$model = \App\Model\PostsModel;
我还尝试了它的一个实例
public $model = new \App\Model\PostsModel;
public $model = new PostsModel::class;
我vardump是:
vardump($this->model);
这表明我的命名空间的地址是正确的
问题是你试图访问类没有实例之前。
从ClassName::class
is总是值的字符串,而不是这个类的一个实例。
您可以指定类名(字符串)的变种,然后创建一个类的新实例只使用该变量。请参阅下面的例子。
<?php
use \App\Model\PostsModel;
class OtherClass {
public $model;
public function callOther() {
$this->model = PostsModel::class;
$instance = new $this->model();
$instance->callSomeMethod();
}
}