我在班级'__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;
...
谁能告诉我问题出在哪里?
答案 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;
}