我想看看是否有更好的方法来编写以下代码?第n级并且执行中没有漏洞?
public function getRequestBody($request_service, $request_model)
{
$request_operation = $request_service->request_code . $request_service->request_operation . 'Request';
$request = '<ns1:' . $request_operation . '>';
foreach (get_object_vars($request_model) as $property => $value) {
if (!is_object($value)) {
if (is_array($value)) {
foreach ($value as $property_arr) {
if (!is_object($property_arr)) {
} else {
$request .= '<ns1:' . $property . '>';
foreach (get_object_vars($property_arr) as $property_inner => $value_inner) {
if (is_array($value_inner)) {
foreach ($value_inner as $property_arr_1) {
if (!is_object($property_arr_1)) {
} else {
$request .= '<ns1:' . $property_inner . '>';
foreach (get_object_vars($property_arr_1) as $property_inner_1 => $value_inner_1) {
$request .= '<ns1:' . $property_inner_1 . '>' . $value_inner_1 . '</ns1:' . $property_inner_1 . '>';
}
$request .= '</ns1:' . $property_inner . '>';
}
}
} else {
$request .= '<ns1:' . $property_inner . '>' . $value_inner . '</ns1:' . $property_inner . '>';
}
}
$request .= '</ns1:' . $property . '>';
}
}
} else {
$request .= '<ns1:' . $property . '>' . $value . '</ns1:' . $property . '>';
}
} else {
$request .= '<ns1:' . $property . '>';
foreach (get_object_vars($value) as $property1 => $value1) {
if (!is_object($value1)) {
$request .= '<ns1:' . $property1 . '>' . $value1 . '</ns1:' . $property1 . '>';
} else {
$request .= '<ns1:' . $property1 . '>';
foreach (get_object_vars($value1) as $property_inner_2 => $value_inner_2) {
if (!is_object($value_inner_2)) {
$request .= '<ns1:' . $property_inner_2 . '>' . $value_inner_2 . '</ns1:' . $property_inner_2 . '>';
} else {
$request .= '<ns1:' . $property_inner_2 . '>';
foreach (get_object_vars($value_inner_2) as $property_inner_3 => $value_inner_3) {
if (!is_object($value_inner_3)) {
$request .= '<ns1:' . $property_inner_3 . '>' . $value_inner_3 . '</ns1:' . $property_inner_3 . '>';
}
}
$request .= '</ns1:' . $property_inner_2 . '>';
}
}
$request .= '</ns1:' . $property1 . '>';
}
}
$request .= '</ns1:' . $property . '>';
}
}
$request .= '</ns1:' . $request_operation . '>';
return $request;
}