2

私がやろうとしているのは、Web サイトの設定を含む別の PHP ファイルを用意し、他のページにこのファイルを含めて、設定に従ってコードを実行することです。ただし、グローバルを使用してクラス内でこれらの変数を参照すると、変数は空になります。例えば:

settings.php:

<?php
$setting1 = 'on';
$setting2 = 'off';
?>

class.php:

<?php
require_once('./settings.php');

class myclass {
  public function __construct {
    global $setting1;
    echo $setting1;
  }
}

$object = new myclass;
?>

これは何も出力しません。ただし、クラス外で「echo $setting1」を実行すると、「on」と出力されます。変数をファイル自体に含めるのではなく、ファイル自体に設定しようとすると、myclass の新しいオブジェクトを作成したときに「on」と出力されました。含まれている変数をクラスのグローバル スコープで使用できるようにするために何か特別なことをする必要がありますか?

4

2 に答える 2

8

コンストラクターには、名前の後に括弧が必要です。

public function __construct() {

}

これにより致命的なエラーが発生していると思われ、display_errors / error_reporting設定のために表示されていません。

于 2009-08-12T15:26:02.460 に答える
1

括弧がありませんでした:

public function __construct {

する必要があります

public function __construct( ) {

結果:

$ php -v
PHP 5.2.5 (cli) (built: Nov 29 2007 09:31:38) 
2007-Macbook:Desktop mark$ php class.php
on
于 2009-08-12T15:27:01.507 に答える