为什么在PHP中允许这样做?

时间:2015-07-01 16:07:05

标签: php

为什么PHP不在第7行抛出错误?

https://ideone.com/DHMLCY

<?php

class Test {
    public function __construct(){

        $name = 123;
        $this->$name = 'Test';
        var_dump($this->$name);


        $this->123 = 'Test2';
        var_dump($this->123);

    }
}

$test = new Test();
var_dump($test);

我一直认为,类字段不能以数字开头。但如果数字在一个变量中,情况似乎并非如此。

1 个答案:

答案 0 :(得分:5)

我认为这是因为PHP变量的动态特性。

如果您阅读已定义的类属性的vardump:

 object(Test)#1 (1) { ["123"]=> string(4) "Test" }

你可以看到它(索引是)一个字符串,而不是一个整数,因为你期望它是