私がしようとしているのは、Webサイトの設定を含む別のPHPファイルを用意し、このファイルを他のページに含めて設定に応じてコードを実行させることです。しかし、クラス内でこれらの変数を参照するためにglobalを使用する場合は、変数は空です。たとえば、次のようにバリアブルが含まれていると、クラス内でグローバルが空になるのはなぜですか?
の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の新しいオブジェクトを作成したときに、それをインクルードするのではなく、ファイルの中に変数を設定しようとしました。クラスのグローバルスコープで使用可能な変数を使用できるようにするために何か特別なことはありますか?
あなたはの理由のために代わりにグローバルVARSの静的クラスを作成することを検討することをお勧めします名前空間の安全性。あなたの質問に直接答えるために、他の人が言及した括弧のようなものです。 – krdluzni
どのバージョンのPHPですか? –