{PHP} 致命错误:不在对象上下文中使用 $this (Joomla)

2022-01-06 00:00:00 php joomla

我真的不懂 php 并且碰壁了.

i don't really know php and have hit a brick wall.

问题是我的网站显示以下错误...

The problem is that my site is showing the following error...

Fatal error: Using $this when not in object context in /hermes/web07/b2350/pow.thefoodie/htdocs/index.php on line 11

这是我的 index.php 文件的开头...

This is the begining of my index.php file...

<?php 
/*
  Joomla templates by Joomladesigns.co.uk
 */

// no direct access
 define( 'YOURBASEPATH', dirname(__FILE__) );
?>
<!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" />
<!--[if lte IE 6]>
<style type="text/css">
#main_body ul li { behavior: url(<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/css/iepngfix.htc) }
</style>
<script defer type="text/javascript" src="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/js/pngfix.js"></script>
<![endif]-->
<link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/css/template_css.css" rel="stylesheet" type="text/css" media="all" />
<script type="text/javascript" src="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/js/fx_styles.js"></script>
<script type="text/javascript" src="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template ?>/js/accordion.js"></script>

<?php

 // *************************************************
 //
 // Template Parameters
 //
 // *************************************************

 $h1         = $this->params->get("logo");
 $linked_h1    = ($this->params->get("logoLinked", 1)  == 0)?"false":"true";
 $h1_title    = $this->params->get("logoTitle"); 
 $h2_motto  = $this->params->get("logoMotto");

 // Please do NOT change this unless you know what you doing.

 $template_path = $this->baseurl.'/templates/'.$this->template; // template path

 $default_font = "default";


 // **************************************************

?>

</head>

任何帮助都会很棒,因为我完全迷失了.

Any help would be great as i am completely lost.

推荐答案

好吧,您只能在类中使用 $this.在类之外,$this 不应该存在.它基本上引用了您在其中工作的当前类对象.要使其正常工作,您需要将一个变量定义为一个新类,然后通过该变量引用所有内容,例如:

Well you can only use $this inside of a class. Outside of a class, $this shouldn't exist. It basically references the current class object that you're working inside of. To get this working properly, you need to define a variable as a new class and then reference everything through that variable, such as:

$myvar = new MyClass();
$h1 = $myvar->params->get("logo");

如果那是你正在做的事情.

If that's the kind of thing you're doing.

相关文章