TeC*_*n4K 5 php phpdoc getter-setter public-method
我在我的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';
Run Code Online (Sandbox Code Playgroud)
上面的代码被"转换"为:
$YourClass->__set('overloaded', 'test');
Run Code Online (Sandbox Code Playgroud)
稍后当您获得属性值时:
$var = $YourClass->overloaded;
Run Code Online (Sandbox Code Playgroud)
此代码被"转换"为:
$YourClass->__get('overloaded');
Run Code Online (Sandbox Code Playgroud)
在每种情况下,魔术方法,__get以及__set,被从类的外部调用所以这些方法将需要public.