在我的PHP类中,我使用神奇的方法,但是当我试图将它们设为私有时,会收到警告:
警告:魔术方法__get()必须具有公共可见性并且不能是静态的...
我不想让这些方法出现在Eclipse的自动完成中。(也许可以用phpdoc的方式?) 所以我的问题是,为什么这些方法必须是公共的?
在我的PHP类中,我使用神奇的方法,但是当我试图将它们设为私有时,会收到警告:
警告:魔术方法__get()必须具有公共可见性并且不能是静态的...
我不想让这些方法出现在Eclipse的自动完成中。(也许可以用phpdoc的方式?) 所以我的问题是,为什么这些方法必须是公共的?
// this can be any class with __get() and __set methods
$YourClass = new YourOverloadableClass();
// this is an overloaded property
$YourClass->overloaded = 'test';
上述代码将被“转换”为:
$YourClass->__set('overloaded', 'test');
$var = $YourClass->overloaded;
这段代码被“转换”为:
$YourClass->__get('overloaded');
在每个场景下,魔术方法__get
和__set
都会从类外部被调用,因此这些方法需要是public
的。