__construct中的未定义变量通知

时间:2013-12-15 04:23:03

标签: php variables undefined external construct

我在班级'__construct上遇到错误,说:

Notice: Undefined variable: DEFAULT_TOP_PAGE_ID in classes.php on line XY.

以下是代码:

// consts.php
    <?php
    $DEFAULT_TOP_PAGE_ID = "top_";
    ...

// classes.php
    <?php
    error_reporting (E_ALL);
    require_once("consts.php");

    class cSiteManager {
      public $top_page_ID;

      public function __construct() {
        $this->top_page_ID = $DEFAULT_TOP_PAGE_ID;
    ...

谁能告诉我问题出在哪里?

3 个答案:

答案 0 :(得分:1)

变量有范围。如果您尝试在函数内部使用变量,则它将是函数的本地变量。要使用函数外部的函数,需要将其声明为全局函数。

function someFunc() {
  global $DEFAULT_TOP_PAGE_ID;
  // more code...
  $this->top_page_ID = $DEFAULT_TOP_PAGE_ID;
  // etc.

}

在这种情况下,我认为你可能需要一个定义:

define("DEFAULT_TOP_PAGE_ID", "top_");

然后

function someFunc() {
  // more code...
  $this->top_page_ID = DEFAULT_TOP_PAGE_ID;
  // Note: $ has gone  ^ here
  // etc.

}

答案 1 :(得分:0)

研究范围。必须在类或方法(函数)中定义$DEFAULT_TOP_PAGE_ID。如果在课程中定义,您需要通过$this->访问它,就像使用top_page_ID一样。

答案 2 :(得分:0)

变量$DEFAULT_TOP_PAGE_AD似乎被定义为全局变量。因此,您必须在构造函数中声明它是全局的:

public function __construct() {
    global $DEFAULT_TOP_PAGE_AD;
    $this->top_page_ID = $DEFAULT_TOP_PAGE_AD;
}