0

我在课堂上遇到错误'__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;
    ...

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

4

3 回答 3

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.

}
于 2013-12-15T04:28:55.683 回答
0

研究范围。 $DEFAULT_TOP_PAGE_ID必须在类或方法(函数)中定义。如果在类中定义,您需要$this->像使用top_page_ID.

于 2013-12-15T04:27:18.413 回答
0

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

public function __construct() {
    global $DEFAULT_TOP_PAGE_AD;
    $this->top_page_ID = $DEFAULT_TOP_PAGE_AD;
}
于 2013-12-15T04:29:02.717 回答