首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Facade get变量

Laravel Facade get变量
EN

Stack Overflow用户
提问于 2014-02-18 13:59:58
回答 3查看 1.3K关注 0票数 3

假设我们在Laravel中有以下类

代码语言:javascript
复制
class myClass {
    private $_someArray;

    // Functions to manipulate $_someArray
    public function someArray() {
        return $this->_someArray;
    }
}

我已经声明了一个外观和一个别名。所以我可以通过调用myClass::someArray()来访问$_someArray,通过myClass::someArray()['key']来访问它的属性。

有没有办法在不调用函数的情况下获得数组?例如,我希望能够做一些像myClass::someArray['key']这样的事情

EN

回答 3

Stack Overflow用户

发布于 2017-02-27 07:01:16

我建议用户使用一个函数来检索具有属性的对象。

代码语言:javascript
复制
MyFacade::getSomeObject()->myProperty;

例如,函数可以从类常量或类变量中获取数据,并在需要时组合它们:

代码语言:javascript
复制
public function getSomeObject()
{
    $result = new \stdClass();
    $result->id = self::SOME_ID;        
    $result->myProperty = $this->someProperty;
    return $result;
}
票数 1
EN

Stack Overflow用户

发布于 2014-02-18 15:54:31

默认情况下,facade通过facade __callStatic方法调用提供程序方法,而不是属性。

代码语言:javascript
复制
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);
        }
    }
票数 0
EN

Stack Overflow用户

发布于 2014-05-02 22:17:31

这种方式是有效的:

代码语言:javascript
复制
myClass::$_someArray
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21845499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档