【问题标题】:PHP Difference between $this-> Class Calls$this-> 类调用之间的 PHP 区别
【发布时间】:2015-09-30 15:07:39
【问题描述】:

我不知道为什么,但我对 Wordpress 的功能感到困惑。

if (!empty($this->participant_id)) : ?>    
  <?php // output any validation errors
 $this->print_errors(); ?>

  <?php // print the form header
  $this->print_form_head()
  ?>

我正在尝试查找在 Wordpress 插件中创建 print_form_head() 的原因。我使用 PHPStorm 作为编辑器,上面的 3 个 $this 调用中的两个之间存在差异。

$this->participant_id

以上将参与者ID以粗体显示

$this-&gt;print_form_head()$this-&gt;print_errors()

不是粗体,只是普通字体,另一个区别是在末尾()

谁能解释一下有什么区别,因为这可能会帮助我找到代码的 form_head 部分?

更新 如您所见,我将 Function 放在上面,因为这是我认为的,但是对于 Wordpress 和插件来说,我想确保我仍然没有遗漏任何东西。因此这个问题,有些人觉得有必要让我失望以进行双重检查......

【问题讨论】:

  • 你真的应该从学习 PHP 和一般编程开始......这不是一个适合初学者的地方。并回答您的问题:$this-&gt;something 是一个属性,$this-&gt;something() 是一个方法...
  • @vard 谢谢,我以为我知道 PHP,但是 Wordpress 和不同的插件,以及它们是如何构建的有点令人困惑。我一直认为 form_head() 是一个函数,但由于我找不到它,所以我想仔细检查一下,因为 Wordpress 对我来说是新的。不过谢谢。 PS,谢谢你投票给我;)
  • 听起来你需要先阅读PHP中的OOP教程。您还可以在 PHP documentation of objects and classes 中找到快速参考(但它不能代替一个好的教程)。
  • 这是一个很棒的 php 类基础教程。我认为它是我在解释 php 类方面见过的最好的。 code.tutsplus.com/tutorials/…
  • @AndrewWalker 您提出问题的方式是“为什么我的 IDE 以粗体显示这个而不是这个” - 这听起来不像你知道 OOP 的含义。如果你这样做,我对你到底在问什么有点困惑。如果你知道什么是方法,那么你没有在类声明中找到它?这个类是否继承于任何其他类?

标签: php wordpress this


【解决方案1】:

它们以不同的方式突出显示,因为它们是 different parts of a Class/Object

participant_idclass member variable called a "property"

print_form_head()print_errors() 是类包含的函数,称为“方法”。

伪变量$this从对象上下文中调用方法时可用。 $this 是对调用对象的引用(通常是方法所属的对象,但也可能是另一个对象,如果该方法是从辅助对象的上下文中静态调用的)。

【讨论】:

  • 没有解释的反对票是没有用的,因为我和原发帖人都无法从我可能犯的任何错误中吸取教训。如果投反对票的人愿意解释我的错误之处,我很乐意有机会解决我的答案中的任何问题。
  • 谢谢你。然后我是否假设,如果该函数不在插件文件中,它是一个次要对象?或者更多是我错过了保存此功能的文件?
  • 该类必须存在于某处。它不是核心 WordPress 的一部分……所以它必须存在于某个插件中。您应该能够使用编辑器同时搜索所有插件文件。我会专门搜索function print_form_head
猜你喜欢
  • 2013-10-23
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 2017-12-22
  • 2012-03-15
  • 1970-01-01
  • 2016-01-07
  • 1970-01-01
相关资源
最近更新 更多