为什么在这个PHP代码的最后一个语句中有两个$ this?

时间:2013-09-29 12:49:18

标签: php this

 parent::__construct();

    $this->displayName = $this->l('Responsive products featured');
    $this->description = $this->l('Displays featured products and categories in your homepage.');
    $this->

    include_once($this->local_path.'/classes/ResponsiveHomeFeaturedClass.php');

你会发现很难理解为什么最后一个语句使用两个$ this?

2 个答案:

答案 0 :(得分:1)

(我不确定你的粘贴代码是否有错误,因为include_once是常用的内置函数,但我假设它也可能是一个实例对象上的函数...)

没有理由为什么任何一行代码都不能引用$this两次,或者引用它需要的次数。 $this只是对象的引用。所以在这行代码中:

$this->include_once($this->local_path.'/classes/ResponsiveHomeFeaturedClass.php');

它只是调用include_once函数并向其传递一个值,其中包含local_path值。这将完成同样的事情:

$some_local_path = $this->local_path;
$this->include_once($some_local_path.'/classes/ResponsiveHomeFeaturedClass.php');

但它会使用一个不必要的临时变量。 include_once只是一个函数,local_path只是一个值。后者可以用作前者的参数。

答案 1 :(得分:0)

cannot include_once为您的方法,因为它是reserved keyword

以下代码

class Test {
  function include_once() {
  }
}

不起作用:

Parse error: syntax error, unexpected T_INCLUDE_ONCE, expecting T_STRING

让你远离麻烦是一件非常好的事情。

如果include_once确实是一种方法(它不可能),那么有问题的代码就会起作用,但是插入一个空行并不是一个好习惯。

关于$this - 它是您的方法或属性调用的一部分,因此通常可以多次使用它来引用您的方法或属性(来自同一个类实例)。