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


Returning variable keys via public static function within a 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

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

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

第2版:在你们的帮助下,我终于想明白了。请注意,我在这里使用的示例显然不是我正在使用的代码。分号是一个简单的错误,不在我的实际代码中。

这是最终产品:

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

再次感谢您的帮助!

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

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());

您的函数没有返回任何内容,请尝试:

return $data;

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