php – 使用魔术__get()时,私有/受保护成员变量的代码完成

前端之家收集整理的这篇文章主要介绍了php – 使用魔术__get()时,私有/受保护成员变量的代码完成前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用具有私有或受保护成员变量的类时,如何在Zend Studio(或任何基于 Eclipse的IDE)上设置代码完成功能,而无需使用一组Getter的OR将成员vars设置为public.

例如:

  1. class Dog {
  2.  
  3. protected $bark = 'woof!';
  4.  
  5. public function __get($key) {
  6. if (isset($this->$key)) {
  7. return $this->$key;
  8. }
  9. }
  10.  
  11. }
  12.  
  13. $Dog = new Dog();
  14. echo $Dog->bark; // <-- I want the IDE to "know" that bark is a property of Dog.
魔法的代码完成方法可以通过在类的DocBlock中使用 @property@method注释来实现(而不是在方法文档中).
  1. /**
  2. * @property string bark
  3. */
  4. class Dog {
  5. /* ... */
  6. }
  7.  
  8. $Dog = new Dog();
  9. echo $Dog-> // will autocomplete now

请注意,实际代码和注释之间没有相关性. Zend Studio显示您为@property设置的任何内容,而不管此属性是否存在.它也不会检查是否有一个魔术方法可用.

猜你在找的PHP相关文章