-1

我一直在做一些麻烦,我相信这是可能的(虽然我不确定)。我所知道的是,我正在尝试做的事情有点荒谬,而不是最好的方法。

class myClass {
    public static function myData() {
        $data = [
            'index' => 'key'
        ];
    }
}

我试图做的是key通过静态函数返回值。我一直试图查看(通过var_dump())我的静态函数(myClass::myData();)里面有什么,但是它出现了NULL

我对 PHP 还是很陌生,但我一直在努力寻找可以解决的问题(即使它们非常荒谬)以更好地熟悉。如果这是可能的,我想以这种方式完成它。我一直在寻找这个问题的答案大约 2 小时,所以是的,我已经环顾四周试图自己先解决这个问题,但无济于事。

此外,如果这根本无法做到,那么做这种事情的最佳方法是什么?我很感激任何回应!

编辑:显然我觉得在我的函数结束时没有返回我的数据有点愚蠢。现在,当类被转储(通过var_dump())时,我的函数中的信息被返回,但是,我仍然无法有选择地返回数据:

class myClass {
    public static function myData() {
        $data = [
            'index' => 'key',
            'index1' => 'key1'
        ];
    return $data;
    }
}

myClass::myData(); //here

我知道信息包含在公共静态函数中,但是,我将如何有选择地key1index1

我真的很感谢大家的帮助!

编辑2:在您的帮助下,我能够弄清楚。请注意,我在这里使用的示例显然不是我正在使用的代码。分号是一个简单的错误,不在我的实际代码中。

这是最终产品:

class myClass {
    public static function myData() {
        $d = [
            'index' => 'key',
            'index1' => 'key1'
        ];
    return $data;
    }
}

$data = myClass::myData();
print $data['index1']; // prints key1

再一次感谢你的帮助!

4

2 回答 2

2

您的函数中没有返回,您的数组构造中也有语法错误。

class myClass {
    public static function myData() {
        $data = [
            'index' => 'key'; // The closing semi-colon is not necessary within the array 
        ];
    }
}

并创建一个回报:

return $data; // This will return the entire array 

return $data['index']; // This will return a value of *key*

所以,如果我想返回整个数组:

class myClass {
    public static function myData() {
        $data = [
            'index' => 'key'
        ];
        return $data;
    }
}
print_r(myClass::myData());
于 2013-08-19T13:58:10.017 回答
0

您的函数不返回任何内容,因此请尝试:

return $data;

函数可以返回数据,但“函数内部的数据”没有意义。

于 2013-08-19T13:55:53.513 回答