如何解决结合两个 PHP 函数的问题
我正在尝试将两个函数合并为一个函数,但遇到的困难比我预期的要大。我已经包含了两个单独的函数以及我尝试将它们组合在一起的版本。变量 requestData
保存我正在迭代的对象。但是,在我的组合版本中,我不断收到致命错误 Call to undefined method 在具有 $this->requestData($value)
的行上。
我觉得我错过了一些简单的东西,所以为新手问题道歉。预先感谢您的任何帮助!
功能#1:
public function iterateRequestKeys($array)
{
foreach ($array as $key => $value)
{
if (is_object($value))
{
$this->iterateRequestKeys($value);
}
else
{
$updated_value = '1234';
$array->$key = $updated_value;
}
}
}
功能#2:
public function requestFindReplace($resourceID,$requestData)
{
$this->iterateRequestKeys($requestData);
}
组合:
public function requestFindReplace($resourceID,$requestData)
{
foreach ($requestData as $key => $value)
{
if (is_object($value))
{
$this->requestData($value);
}
else
{
$updated_value = '123';
$array->$key = $updated_value;
}
}
}
解决方法
看起来您正在递归调用 requestFindReplace(),因此您希望将其更改为 $this->requestFindReplace($resourceID,$value);
public function requestFindReplace($resourceID,$requestData)
{
foreach ($requestData as $key => $value)
{
if (is_object($value))
{
$this->requestFindReplace($resourceID,$value);
}
else
{
$updated_value = '123';
$array->$key = $updated_value;
}
}
}
,
您的组合功能似乎存在一些问题。简而言之...
- 您没有调用递归函数,也没有通过(第 7 行)传递参数
- 你也没有通过引用传递(我相信你可能需要用数组来做,不完全确定我是一个但对 PHP 生疏)。 (第 1 行)
- 您正在尝试更新不存在的
$array
(第 12 行)
试试这个代码:
public function requestFindReplace($resourceID,&$requestData)
{
foreach ($requestData as $key => $value)
{
if (is_object($value))
{
$this->requestFindReplace($resourceID,$value);
}
else
{
$updated_value = '123';
$requestData->$key = $updated_value;
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。