当包含变量时,为什么全局变量在类中是空的?

2 php global class

我想要做的是有一个单独的PHP文件包含网站的设置,然后让其他页面包含此文件并根据设置执行代码.但是,每当我使用global在类中引用这些变量时,变量都是空的.例如:

settings.php配置:

<?php
$setting1 = 'on';
$setting2 = 'off';
?>
Run Code Online (Sandbox Code Playgroud)

class.php:

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

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

$object = new myclass;
?>
Run Code Online (Sandbox Code Playgroud)

这没什么打印.但是,如果我在课外进行"echo $ setting1",它会打印'on'.当我尝试在文件本身内部设置变量而不是包含它时,在为myclass创建新对象时打印'on'.我是否需要做一些特别的事情来使包含的变量在类的全局范围内可用?

Tom*_*igh 8

您的构造函数在其名称后需要括号,例如

public function __construct() {

}
Run Code Online (Sandbox Code Playgroud)

我怀疑这会给你一个致命错误,因为你的display_errors/error_reporting设置没有显示.