我理解有关 $ this :http://php.net/manual/en/language.oop5.basic.php
的官方解释但如果我试着理解symfony这个例子中的对象引用是什么,我不知道是谁,例如:
每当您需要返回主题时,请使用:
public function indexAction()
{
return $this->render('foo/bar.html.twig', array());
}
或者当您生成某种形式时:
public function indexAction(Request $request)
{
// Create the form
$form = $this->createFormBuilder()
->add('name', TextType::class)
->add('email', EmailType::class)
->add('subject', TextType::class)
->add('message', TextareaType::class)
->add('send', SubmitType::class)
->getForm();
}
但究竟谁是对象$ this?如果使用不是$ this的其他单词或值,只能尝试更好地理解。
答案 0 :(得分:1)
如果您询问控制器中$this
调用的方法的位置,请查看控制器的extends
语句(在课程声明后)。
所有控制器都扩展(默认情况下)FrameworkBundle Controller,您也可以访问所有继承的方法,例如createForm
,render
,getDoctrine
,{{ 1}}。
父generateUrl
从Controller
(依赖注入)延伸,它允许您访问和使用ContainerAware
。
我列出的大部分方法都只是服务方法的捷径。
即。 services
等于$this->generateUrl(/*params*/)
答案 1 :(得分:0)
在这种情况下,$ this引用对象的实例,例如。你在一个控制器,然后$ this变量引用你所在的控制器的当前实例,你可以访问该类本身具有的所有方法和扩展类的所有方法,在这种情况下是基本控制器和等等在继承层次结构中。
您可以阅读此问题以获得更清晰的信息。
答案 2 :(得分:0)
$this
是一个类的实例在PHP中引用自己的方式。
class Person
private $name;
public function __construct($name){
$this->name = $name;
}
public function getName($name){
$this->name = $name;
}
end
使用$foo = new Person('Max');
创建类的实例时。 $this
引用您正在创建的新实例。在控制器中使用$this
时 - 这指的是控制器本身。
用自然语言说my
。