我一直在做一些我认为可能的事情(尽管我不确定)。我所知道的是,我试图做的事情有点荒谬,而且不是最好的方法
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;
函数可以返回数据,但"函数内部的数据"没有意义。