【发布时间】:2016-06-09 02:34:29
【问题描述】:
有没有办法抑制 PHP 中的 __get 和 __set 函数?显然,它们没有定义就存在。 PHP 4.x、5.x 和 7.x 版本之间有何区别?
这是我的代码。 2 个文件,
//文件1.php
<?php
namespace N;
class File1
{
public $name;
}
//文件2.php
<?php
require 'File1.php';
$a = new \N\File1();
$a->name1 = 'Avian Carrier';
echo $a->name1;
?>
还在回响“鸟航母”吗?
【问题讨论】:
-
“没有定义就存在”
-
它们默认不存在,不。 @jszobody 我认为他的意思是它们隐式存在(继承)
-
我建议展示一些代码。看来您正在做一些您认为不可能的事情,也许可以告诉我们具体是什么?
-
看来你是对的,这些神奇的方法是默认启用的。查看来自this question 的答案。它建议只用空主体定义
__set魔术方法。我自己尝试过,它看起来很有效(我在尝试设置未定义的属性时收到了通知)。如果你愿意,你也可以让它抛出一个异常。
标签: php