美好的一天。
我们有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();
答案 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
中没有错误,那就有用了