使用空格定义类变量


Defining class variables with a space

我正在尝试创建一个具有对象名称且中间有空格的类。这样我就可以像这样访问它们:

$object->{'Var name with spaces'};

我已经在这里阅读了这个主题,现在知道如何访问这些变量,但我不确定如何使用这些变量创建一个类。我已经尝试过这样的事情,但我无法让它工作:

class Hotel
{
    public ${'Var name with spaces'} = 'Some value'; // Fails
}

我将如何在包含空格的类定义中创建变量?

我很确定你必须在构造函数中执行此操作,因为类属性不能要求运行时计算。

class Hotel {
    public function __construct() {
        $this->{'Var name with spaces'} = 'Some value';
    }
}

您可以在此演示中看到它的工作,但我认为这些评论已经充分说明了为什么您不应该这样做。 :)