【问题标题】:PHP cannot redeclare a variablePHP 无法重新声明变量
【发布时间】:2013-01-07 00:18:02
【问题描述】:
class Content extends CodonModule     {

    public $title = 'Operations';
    public function operations()     {

        $this->show('operations');

    }

    public $title = 'Staff';
    public function staff()     {

        $this->show('staff');

    }

}

我试图给每个模板一个标题,但它不能重新声明一个类,我该如何绕过这个?我尝试将 public $title 放在函数中,但这不遵循文档,并且不起作用,它只会引发未定义的 T_PUBLIC 错误。

【问题讨论】:

  • 你有两行声明变量 $title... 你的第二行应该只说 $title = 'Staff';
  • 我正在尝试为每个公共函数命名。本质上,公共函数显示了一个带有 HTML 代码的模板。 public $title 应该设置每个模板/页面的 HTML 标题。
  • 声明一次public $title,并在方法中设置它的值。在operations() 里面,做$this->title = 'operations'。同样在staff()
  • @AMayer:你试过了吗?
  • 问题的标题和内容不匹配。在问题的内容中,他们说他们收到了 T_Public 错误。这是因为他们两次声明了变量。

标签: php


【解决方案1】:

正如 Michael Berkowski 在评论中所说,在函数中设置标题。这将导致在调用函数时设置标题。

class Content extends CodonModule     {

    public $title;

    public function operations()     {
        $this->title = 'Operations';
        $this->show('operations');

    }

    public function staff()     {
        $this->title = 'Staff';
        $this->show('staff');

    }

}

【讨论】:

  • 我被他的解释弄糊涂了,你的例子让像我这样的PHP新手更清楚,谢谢。我不理解或最初误读的是public $title,我认为它需要定义才能工作。也感谢 Michael Berkowski。
【解决方案2】:

此文件连续多次包含/需要。您只能使用此名称定义 1 个类,但您可以将多个对象作为此类的实例。

【讨论】:

  • 是的,所以我的课很满意。本质上,它应该显示像 /content/operations 和 /content/staff 这样的页面,并带有来自上述 PHP 的单独的 public $title。例如,第一个示例的 public $title = 'Operations' 应该返回站点上的 Operations 等等。我只是想知道如何绕过类重新声明问题。
  • 使类的实例不再包含它。 $title = 新内容(); $body = 新内容(); $footer = 新内容();这是你要找的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 2018-08-02
  • 2020-06-07
  • 1970-01-01
相关资源
最近更新 更多