通过类中的公共静态函数返回变量键

时间:2013-08-19 13:51:01

标签: php function class

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

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

我知道这些信息包含在公共静态函数中,但是,我如何选择性地从key1

返回index1

我非常感谢大家的帮助!

编辑2:我能够在你的帮助下找到答案。只是一个注释,我在这里使用的例子,显然不是我正在使用的代码。分号是一个简单的错误,并不在我的实际代码中。

这是最终产品:

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

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

再次感谢您的帮助!

2 个答案:

答案 0 :(得分: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());

答案 1 :(得分:0)

你的功能没有返回任何内容,所以试试:

return $data;

一个函数可以返回数据,但是"函数内部的数据"没有意义。