无法重新声明类和未定义的索引

时间:2014-03-03 21:17:04

标签: php

您好我有一个PHP错误,它可能你可以帮助 不能重新声明课程我已经研究了很多结果但没有一个适用或帮助我解决我的问题我曾经使用过一次要求/包括但仍然存在错误

它有时会说注意:未定义的索引:lol在C:\ xampp \ htdocs \ template.php中,这很奇怪,因为我不明白为什么会这样。

索引

<?php
require_once 'settings.php';
require_once 'global.php';
if (!isset($_GET['url']))
{
    include("pages/index.php");
}
if (file_exists("".$hotelurl."/pages/".$_GET['url'].".php"))
{
    include("pages/".$_GET['url'].".php");
}
?>

我的global.php

<?php
require_once 'template.php';
use Central as C;
$template = new C\template();
$template->Initiate();
?>

我的设置.php

<?php
$hotelurl = "http://127.0.0.1";
?>

我的template.php

<?php
class template

{

public $tpl;

private $params = array();

final public function Initiate()
{
    $this->setParams('lol', 'centraltest');
}

final public function setParams($key, $value)
{   
    $this->params[$key] .= $value; 
}

final public function filterParams($str)
{
    foreach($this->params as $key => $value)
    {
        $str = str_ireplace('{' . $key . '}', $value, $str);
    }

    return $str;
}

final public function write($str)
{
    $this->tpl .= $str;
}

final public function outputTPL()
{
    echo $this->filterParams($this->tpl);
    unset($this->tpl);
}
    }
    ?>

1 个答案:

答案 0 :(得分:0)

Cannot redeclare class and Undefined index

表示您正在创建一个已经采用名称的类(例如,通过标准类名称)。

解决方案:重命名

可能的情况 - 好的评论:

  

你可能正在通过require()或者加载你的template.php文件   include()某处,而不是使用_once()版本。所以你会的   加载模板文件TWICE,导致PHP看到你定义   那班TWICE。 - Marc B

Notice: Undefined index: lol in C:\xampp\htdocs\template.php

表示您正在尝试访问尚未设置的索引(在您的情况下为索引'lol')(您正在使用。=正在读写)。

解决方案:检查是否已经采取或忽略它(它只是'通知')。您可以使用语言构造isset或函数array_key_exists