我正在阅读其他人的代码(需要对其进行一些更改)而且我坚持使用此功能。它可能与MVC方法有关,并且在网络上很常见(我发现了很多谷歌搜索结果),但我找不到它实际上做的事情。
我猜它是基于MVC的主要CMSes / PHP平台常见的标准方法,但我无法找到它编码的位置或它的作用?
这是参考代码片段
foreach ($results as $result) {
if ($this->config->get($result['key'] . '_status') && ($this->config->get($result['key'] . '_position') == 'left')) {
$module_data[] = array(
'code' => $result['key'],
'sort_order' => $this->config->get($result['key'] . '_sort_order')
);
$this->children[] = 'module/' . $result['key'];
}
}
我知道必须有一个带有方法get()
的对象配置但是包含此代码的类(类ControllerCommonColumnLeft)以及它所扩展的类(扩展Controller)都没有这些,这就是我要问的原因......
答案 0 :(得分:1)
这取决于它的使用位置。在PHP中,$this
引用“当前类”,因此,如果您有以下代码,$this
就像说“在类Person
中查找... 。“
class Person
{
public function walk ($to)
{
echo 'I walked to ' . $to . '<br />';
}
public function eat ($food, $place)
{
// Here, $this->walk() calls Person->walk(), as '$this class' is called Person
$this->walk($place);
echo 'I ate a ' . $food . ' at ' . $place;
}
}
$person = new Person;
$person->eat('jelly bean', 'the sweet shop');
一旦开始使用static
课程,可能会有点复杂,但你现在不应该担心这些。