PHP-使用带有类变量的双冒号
我试图从一个类中调用一个具有可变名称的静态函数 预期结果:PHP-使用带有类变量的双冒号,php,class,static,scope-resolution,Php,Class,Static,Scope Resolution,我试图从一个类中调用一个具有可变名称的静态函数 预期结果: class Controller extends Controller { public $model = 'ModelName'; public function index() { $woot = $this->model::find(''); var_dump($woot); } } 这项工作: $class = 'ClassName'; $object = $cla
class Controller extends Controller {
public $model = 'ModelName';
public function index() {
$woot = $this->model::find('');
var_dump($woot);
}
}
这项工作:
$class = 'ClassName';
$object = $class::find($parameters);
这也有效:
$class = new Model();
$object = $class::find($params);
我试图在当前类中定义新的类名,并从当前模型中调用find作为静态函数。
如果不创建新对象,不使用
\uu set
,也不在函数中声明一个局部变量,您知道这是如何实现的吗?实际上,您无法做到这一点。在类实例中,不能使用$this->var
引用其他类。但是,您可以将其分配给另一个局部变量并使其工作
public function index() {
$var = $this->model;
$woot = $var::find('');
var_dump($woot);
}
实际上你不能这么做。在类实例中,不能使用
$this->var
引用其他类。但是,您可以将其分配给另一个局部变量并使其工作
public function index() {
$var = $this->model;
$woot = $var::find('');
var_dump($woot);
}
实际上你不能这么做。在类实例中,不能使用
$this->var
引用其他类。但是,您可以将其分配给另一个局部变量并使其工作
public function index() {
$var = $this->model;
$woot = $var::find('');
var_dump($woot);
}
实际上你不能这么做。在类实例中,不能使用
$this->var
引用其他类。但是,您可以将其分配给另一个局部变量并使其工作
public function index() {
$var = $this->model;
$woot = $var::find('');
var_dump($woot);
}
我同意Machavity的方法,但您可以使用call\u user\u func()
或call\u user\u func\u array()
:
我同意Machavity的方法,但您可以使用call\u user\u func()
或call\u user\u func\u array()
:
我同意Machavity的方法,但您可以使用call\u user\u func()
或call\u user\u func\u array()
:
我同意Machavity的方法,但您可以使用call\u user\u func()
或call\u user\u func\u array()
: