Php类型提示对象属性存在


Php type hinting to object properties existance

我该如何提示,我接收的参数必须具有多个公共属性
类似于:

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概念?

在接口中定义getter:

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