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 に答える