如何正确使用包含文件中的功能?

时间:2014-02-27 07:57:34

标签: php function include

美好的一天。

我们有3个文件:

1) index.php

<?php
require_once("functions.php");
$t= new getgunctions;
$t->getgainTpl();
$t->controllerTpl(1);
?>

2) functions.php

<?php
class getgunctions{
  .....
  public function controllerTpl(){
    $this->form();
  }
  private function form(){
    include "form.tpl";
  }
  public function right(){
    echo 'test';
  }
  .....
}

?>

3) form.tpl

<div><?php $this->right(); ?></div>

但我收到错误:Using $this when not in object context...

请告诉我,如何正确使用form.tpl中的函数right();

4 个答案:

答案 0 :(得分:0)

$this在您的情况下不会返回任何内容。所以obv。你无法使用它。

我在这里看不到太多代码,但我想你在这里需要这个代码:

<div><?php $t->right(); ?></div>

如果这不是问题,我们需要查看更多代码。

答案 1 :(得分:0)

您在functions.php中定义的函数是全局函数,在全局范围内可见,因为它们包含在任何命名空间或类定义之外(我假设这是从您的第一个代码段开始),而不是类方法。因此,要调用它们,您只需要使用它们的名称,如:

<div><?php right(); ?></div>

这假设您的某些最新方法调用包含form.tpl,例如$t->getgainTpl();

如果要将form()right()封装在getgunctions类中,则需要通过修改或扩展getgunctions将它们定义为类方法:

class getgunctions
{
    // previous code

    public function right()
    {
        // implementation...
    }
}

答案 2 :(得分:0)

这主要起作用。你的错误必须来自别的东西。

答案 3 :(得分:0)

检查服务器上的文件。如果你在function.php

中没有错误,那就有用了