Я в ситуации, когда мне нужно вызвать тот же метод, если какое-либо исключение выбрано, чтобы я не дублировал какой-либо код. Однако он не работает, как я думал. Вот соответствующий код:Можно ли вызвать метод из того же метода?
public static function getFolderObject($folder_id)
{
$client = new Client('https://api.box.com/{version}/folders', [
'version' => '2.0',
'request.options' => [
'headers' => [
'Authorization' => 'Bearer ' . self::getAccessToken(),
]
]
]);
$request = $client->get($folder_id);
try {
$response = $request->send();
$result = $response->json();
$files = $result['item_collection']['entries'];
} catch (BadResponseException $e) {
$result = $e->getResponse()->getStatusCode();
if ($result === 401) {
self::regenerateAccessToken();
self::getFolderObject();
}
}
return count($files) ? $files : false;
}
Как вы можете видеть, что я звоню метод от метода метода при if
условия self::getFolderObject();
для предотвращения дублирования кода снова под if
заявлением от начала метода. Однако, если я дублирую код, он работает так, как ожидалось. Есть ли какое-то решение для достижения того, чего я хочу?
Похоже, вы не передаете в 'переменной $ folder_id' при повторном вызове метода. Вам также нужно «вернуть» вызов. –