如何抑制__get和__set PHP函数

时间:2016-02-26 02:18:45

标签: php

有没有办法在PHP中抑制__get__set函数?显然它们没有定义而存在。它们在PHP的4.x,5.x和7.x版本之间有何区别?

这是我的代码。 2个文件,

// File1.php

<?php
namespace N;

class File1
{
    public $name;
}

// File2.php

<?php

require 'File1.php';

$a = new \N\File1();
$a->name1 = 'Avian Carrier';
echo $a->name1;

?>

仍然是回声&#39; Avian Carrier&#39;?

3 个答案:

答案 0 :(得分:1)

当你声明它们默认存在时你错了 - 它们必须由开发者定义。

您可以在官方文档中获得更多详细信息:http://php.net/manual/en/language.oop5.overloading.php#object.get

这些魔法&#39;方法是在PHP5中引入的,并根据更改日志 - 从那以后它们没有改变。

逻辑非常简单 - 如果您尝试访问对象上的不可访问属性并且对象具有__get()方法,PHP将使用单个参数(属性名称)调用该方法。与__set()相同。

这些方法允许您介绍通常称为魔术属性的内容。

在你实施它们之前它们不存在。

答案 1 :(得分:0)

这些是神奇的方法,你可以使用它们。没有办法&#34;抑制&#34;某些东西是语言的一部分。参考:http://php.net/manual/en/language.oop5.magic.php

答案 2 :(得分:0)

__ get和__set无法被抑制它们是PHP语言方法。