假设我们在Laravel中有以下类
class myClass {
private $_someArray;
// Functions to manipulate $_someArray
public function someArray() {
return $this->_someArray;
}
}我已经声明了一个外观和一个别名。所以我可以通过调用myClass::someArray()来访问$_someArray,通过myClass::someArray()['key']来访问它的属性。
有没有办法在不调用函数的情况下获得数组?例如,我希望能够做一些像myClass::someArray['key']这样的事情
发布于 2017-02-27 07:01:16
我建议用户使用一个函数来检索具有属性的对象。
MyFacade::getSomeObject()->myProperty;例如,函数可以从类常量或类变量中获取数据,并在需要时组合它们:
public function getSomeObject()
{
$result = new \stdClass();
$result->id = self::SOME_ID;
$result->myProperty = $this->someProperty;
return $result;
}发布于 2014-02-18 15:54:31
默认情况下,facade通过facade __callStatic方法调用提供程序方法,而不是属性。
public static function __callStatic($method, $args)
{
$instance = static::resolveFacadeInstance(static::getFacadeAccessor());
switch (count($args))
{
case 0:
return $instance->$method();
case 1:
return $instance->$method($args[0]);
case 2:
return $instance->$method($args[0], $args[1]);
case 3:
return $instance->$method($args[0], $args[1], $args[2]);
case 4:
return $instance->$method($args[0], $args[1], $args[2], $args[3]);
default:
return call_user_func_array(array($instance, $method), $args);
}
}发布于 2014-05-02 22:17:31
这种方式是有效的:
myClass::$_someArrayhttps://stackoverflow.com/questions/21845499
复制相似问题