自调用数组returnphp
Self calling array return php
我正在编写一个按类别排序的模块,return我是尽可能低的子类别。
private function getChild($array){
foreach($array as $item){
if(is_array($item)){
$this->getChild($item);
} else {
array_push($this->catsToReturn, $item);
}
}
}
所以我的实际问题是为什么我不能 return 在 else 附件中赋值?我想 return $item 并将该值推送到数组,这将给我更好的代码可读性,因为现在我有
$this->getChild($this->postCategories);
在我的代码中随机挂起。
对我来说奇怪的新事物是我可以回显值但我不能 return 它,我知道这是一个范围问题,但找不到任何关于如何解决的信息它。
只是想知道如何改进它。
干杯
您可以通过在数组中添加 $item
并执行 array_merge
从后续调用中获取结果来更改您的代码。
<?php
private function getChild($array){
$result = [];
foreach($array as $item){
if(is_array($item)){
$result = array_merge($result,$this->getChild($item));
} else {
$result[] = $item;
}
}
return $result;
}
无论您在 class 中呼叫什么地方,您都可以
$this->catsToReturn = $this->getChild($array)
我正在编写一个按类别排序的模块,return我是尽可能低的子类别。
private function getChild($array){
foreach($array as $item){
if(is_array($item)){
$this->getChild($item);
} else {
array_push($this->catsToReturn, $item);
}
}
}
所以我的实际问题是为什么我不能 return 在 else 附件中赋值?我想 return $item 并将该值推送到数组,这将给我更好的代码可读性,因为现在我有
$this->getChild($this->postCategories);
在我的代码中随机挂起。
对我来说奇怪的新事物是我可以回显值但我不能 return 它,我知道这是一个范围问题,但找不到任何关于如何解决的信息它。
只是想知道如何改进它。
干杯
您可以通过在数组中添加 $item
并执行 array_merge
从后续调用中获取结果来更改您的代码。
<?php
private function getChild($array){
$result = [];
foreach($array as $item){
if(is_array($item)){
$result = array_merge($result,$this->getChild($item));
} else {
$result[] = $item;
}
}
return $result;
}
无论您在 class 中呼叫什么地方,您都可以
$this->catsToReturn = $this->getChild($array)