我正在观看PHP视频讲座。我的项目目录中有user
类现在在一个静态函数中的教程中,它实例化了这样的
private static function instantiate($result){
$object = new self;
//here goes loop
}
和某个地方一样使用
$object= new user();
有人请指导第一个案例的概念吗new self
答案 0 :(得分:2)
"自"是引用当前类的关键字。它只在课堂上提供。代码。
您可以使用它来调用您自己的类上的方法,但由于绑定,您还可以使用它来调用超类上的方法。
考虑以下示例:
class TestA {
public static function makeNewInstance() {
return new TestA();
}
}
class TestB extends TestA {
}
现在,调用TestB :: makeNewInstance();将返回TestA的实例。 (TestB继承了该方法,但它直接链接到TestA,所以仍会返回)
与此相比:
class TestA {
public static function makeNewInstance() {
return new self();
}
}
class TestB extends TestA {
}
现在,调用TestB :: makeNewInstance()将返回TestB的一个实例。 (由于self引用了活动类,并且你在TestB上调用它,因此" self"的内容现在是TestB而不是TestA。
希望能为您解释。否则,您的问题中可能会有更多细节有助于吸引更具体的答案。
答案 1 :(得分:0)
self
指向编写它的类。请参阅What does new self(); mean in PHP?
$ object = new user(); //它使类用户的对象 - 在用户类
之外