代码之家  ›  专栏  ›  技术社区  ›  dirtside

在PHP中锁定类成员

  •  0
  • dirtside  · 技术社区  · 16 年前

    class foo {
        public $bar = 5;
    }
    
    $A = new foo;
    $A->temp = 10;
    

    我意识到我可以用_set方法来实现这一点,如果您试图设置一个不存在的成员,那么这将是一个致命的错误,但是必须包含在每个类定义中,这很烦人(虽然我可以定义我的每个类来用该方法扩展基类,但这也很烦人)。例如。:

    class foo {
        public $bar = 5;
    
        private function __set($var, $val) {
            trigger_error("Cannot dynamically add members to a class", E_USER_ERROR);
        }
    }
    

    3 回复  |  直到 16 年前
        1
  •  4
  •   Kornel    16 年前

    不,没有比这更好的办法了 __set planned to be addressed in the future :

        2
  •  2
  •   Vilx-    16 年前

        3
  •  0
  •   UnkwnTech    16 年前