存在一些类:
class A{
protected $options;
public function setDefaults($defaults){
$this->options=$defaults;
}
public function getOptions(){
return $this->options;
}
}
和其他类:
class B{
public function setDefaultOptions(A $options){
$options->setDefaults('foo'=>'bar')
}
}
用途:
$a=new A();
$b=new B();
$b->setDefaultsOptions(a);
如何检查 B 的规范是否设置了 $a->options['foo']?
现在我将其实现为:
public function getMatchers(){
return array('haveResolverKey'=>
function($subject, $key){
$resolver=new A();
$subject->setDefaultOptions($resolver);
$ret=$resolver->getOptions();
return isset($ret[$key]);
});
}
也许存在简单的方法?