我在课堂上有以下功能:
python 3.6.1
我使用以下内容:
public function getDomains($RESELLER)
{
$data['object'] = 'domain';
$data['action'] = 'read';
$data['territory'] = $RESELLER;
$data['format'] = 'json';
if ($response = $this->request($data)) {
$obj = json_decode($response, true);
foreach ($obj as $file) {
return $file['domain'];
}
}
}
如果我在函数中更改echo的返回值,它将打印所有域。但是,如果我保持原样,我只能获得一个值。我尝试在$ Domains上做一个关于返回的foreach,但我最终得到了一个错误。
我的最终结果是我希望能够获取我返回的值并将其传递给另一个函数,这样我就可以只使用一个作业来保留此函数,而无需将其作为一个函数来完成更多的工作。
答案 0 :(得分:1)
返回将在命中时从函数返回,因此为什么你只得到一行,
将结果存储在数组中,然后返回:
public function getDomains($RESELLER)
{
$data['object'] = 'domain';
$data['action'] = 'read';
$data['territory'] = $RESELLER;
$data['format'] = 'json';
$data['domain'] = array();
if ($response = $this->request($data)) {
$obj = json_decode($response, true);
foreach ($obj as $file) {
$data['domain'][] = $file['domain'];
}
}
}
return $data;
}
答案 1 :(得分:0)
return
终止一个函数并返回该值。一种解决方案可能是将所有域收集到一个数组中,然后将其返回:
public function getDomains($RESELLER)
{
$data['object'] = 'domain';
$data['action'] = 'read';
$data['territory'] = $RESELLER;
$data['format'] = 'json';
$retval = array(); # Create the array
if ($response = $this->request($data)) {
$obj = json_decode($response, true);
foreach ($obj as $file) {
$retval[] = $file['domain']; # Add values to it
}
}
return $retval; # Return it
}