<?php
$sth = Framework::blah()->any_key['any_key_2'];
?>
您好,我想在 blah() 中获取 'any_key' 和 'any_key_2',我该怎么做?
你正在做的Framework::blah()->any_key['any_key_2'];
是这样的:
静态调用类blah()
中的方法Framework
。方法调用必须返回一个对象,您可以从该对象any_key
以某种方式获取属性。的值any_key
必须是一个数组或实现的东西ArrayAccess
。
class Framework
{
public static function blah()
{
return new ArrayObject(
array('any_key' => array(
'any_key_2' => 'blablablah')
), ArrayObject::ARRAY_AS_PROPS);
}
}
或者
class Framework {
public $any_key = array(
'any_key_2' => 'blahblahblah'
);
public static function blah()
{
return new self;
}
}
或者
class Framework
{
public static function blah()
{
$class = new StdClass;
$class->any_key = new Foo;
return $class;
}
}
class Foo implements ArrayAccess
{
protected $any_key_2 = 'blahblahblah';
public function offsetGet ($offset){
return $this->$offset;
}
public function offsetSet ($offset, $value){}
public function offsetUnset ($offset){}
public function offsetExists ($offset){}
}