我一直在做一些麻烦,我认为可能(虽然我不确定)。我所知道的是,我试图做的事情有点荒谬而不是最好的方法。
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
再次感谢您的帮助!
答案 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;
一个函数可以返回数据,但是"函数内部的数据"没有意义。