Php 即使我没有这个变量,当我访问它时,我没有得到一个错误

Php 即使我没有这个变量,当我访问它时,我没有得到一个错误,php,class,class-members,Php,Class,Class Members,在PHP中,您可以动态创建公共成员变量。如果要防止此情况发生,可以重载,并在有人尝试执行此操作时引发异常: object(Test)#1 (3) { ["test_1"]=> string(14) "THIS IS A TEST" ["test_2"]=> string(16) "THIS IS A TEST 2" ["test_3"]=> string(16) "THIS IS A TEST 3" } 在PHP中,您可以动态创建公共成员变量。如果要防

在PHP中,您可以动态创建公共成员变量。如果要防止此情况发生,可以重载,并在有人尝试执行此操作时引发异常:

object(Test)#1 (3) {
  ["test_1"]=>
  string(14) "THIS IS A TEST"
  ["test_2"]=>
  string(16) "THIS IS A TEST 2"
  ["test_3"]=>
  string(16) "THIS IS A TEST 3"
}

在PHP中,您可以动态创建公共成员变量。如果要防止此情况发生,可以重载,并在有人尝试执行此操作时引发异常:

object(Test)#1 (3) {
  ["test_1"]=>
  string(14) "THIS IS A TEST"
  ["test_2"]=>
  string(16) "THIS IS A TEST 2"
  ["test_3"]=>
  string(16) "THIS IS A TEST 3"
}

您可以在phpy中动态创建成员变量,只要您设置了一个新变量。在这个社区里,问问题…@johncode,有没有办法限制它?是的。您可以重写_uset magic方法并使其出错。让我看看我是否能想出一个例子。@eddard.stark John在下面为您发布了一个答案。您可以在phpy中动态创建成员变量。您可以设置一个新变量。在这个社区里,问问题…@johncode,有没有办法限制它?是的。您可以重写_uset magic方法并使其出错。让我看看是否能举个例子。@eddard.stark John在下面为您发布了一个答案。
class Test{
    public $test_1, $test_2;

    public function __set($name, $value) {
        throw new \Exception('You cannot do this!');
    }
}