【问题标题】:Php type hinting to object properties existance提示对象属性存在的 PHP 类型
【发布时间】:2015-09-22 19:41:58
【问题描述】:

我如何提示,我收到的参数必须有几个公共属性?
类似的东西:

interface IPerson {
    public $surname;
    public $name;
}
class A {
    public function foo(IPerson $p) {
        return $p->surname . ' ' . $p->name;
    }
}

但是由于接口不能指向变量(为什么?),上述行为在 PHP 中是否可能?
在一些新的 php 版本中可能有什么(5.5-7.0)?

我认为主要问题是php 类型系统,哪里没有has property 概念?

【问题讨论】:

  • '我认为当前的 PHP 5.x 没有办法

标签: php type-hinting


【解决方案1】:

在接口中定义getter:

interface IPerson {
    public function getSurname();
    public function getName();
}
class A {
    public function foo(IPerson $p) {
        return $p->getSurname() . ' ' . $p->getName();
    }
}

【讨论】:

  • 但是我需要包装大量的外部类来实现这个,更简单的检查isset's 没有提示......
  • 这就是它的本意。通过在接口中为属性定义一个 getter,实现类必须返回一些东西(即属性必须存在)。
猜你喜欢
  • 2017-11-21
  • 1970-01-01
  • 2016-09-12
  • 2013-07-18
  • 1970-01-01
相关资源
最近更新 更多