我有一个在 foreach 循环上使用的类函数。我可以返回一个值(即使它是一个数组),但不是关联数组
foreach ($this->myfunction($param1,$param2) as $val){
var_dump($val);
}
private function myFunction($param1,$param2){
$returnArray = [];
$settingArray = [];
...
return $returnArray; //works but I need $settingArray
return ['returnArray'=>$returnArray,'settingArray'=>$settingArray]; //fails: returns only $returnArray array (not associative array $val['returnArray'])
return array($returnArray,$settingArray]; //fails: returns only $returnArray array
}
我可以在类中为此分配值,但我想避免这种情况,而且我也试图理解为什么会出现此错误。 谢谢你。
我想在 foreach $val 中获取 2 个数组
您使用的私有函数有问题。每当您尝试返回关联数组时,请返回指定键及其值的数组。然后可以使用这些键来捕获值。检查下面我的演示:
<?php
class MyClass{
public $param1;
public $param2;
public function concatVal($param1, $param2){
foreach ($this->myfunction($param1,$param2) as $val){
var_dump($val);
}
}
private function myFunction($param1, $param2){
$status = "";
$message = "";
$returnArray = [];
$settingArray = [];
$newWord = "some new word";
$newWordInMiddle = $param1." ".$newWord." ".$param2;
$newWordInEnd = $param1." ".$param2." ".$newWord;
$status = "success";
$message = "done";
//return Array
$returnArray = [
'status' => $status,
'message' => $message
];
//settings Array
$settingArray = [
'newWordInMiddle' => $newWordInMiddle,
'newWordInEnd' => $newWordInEnd
];
//returning associative array here
return array(
'returnArray' => $returnArray,
'settingArray' => $settingArray,
);
}
}
$myObj = new MyClass;
$myObj->concatVal("Hello", "There");
?>