Я хочу решение что-то вроде: представьте, у меня есть try catch
Блок, работает в любом php 5.?.? версия, но с finally
блок не в любом. мой код должен быть таким:
try {
// some logic
} catch (Exception $ex) {
// some logic
} finally {
// other logic
}
но как я могу сделать так, чтобы в конечном итоге блок работал, только если версия php поддерживает его, иначе игнорировать? Например:
try {
// some logic
} catch (Exception $ex) {
// some logic
}
#if version=5.?.?
finally {
// other logic
}
#endif
Есть ли решение?
Вы можете получить версию PHP по метод phpversion. Единственный вариант, который у вас есть, — написать оператор if, чтобы проверить его; если он поддерживает, напишите весь блок try-catch-finally. Если нет, напишите только try-catch. Вы можете использовать встроенные функции для предотвращения дублирования кода. Я понятия не имею, зачем кому-то это нужно, но например;
function fncTry(){...}
function fncCatch($exception){...}
function fncFinally(){...}
if($phpVersion == '5.5'){
try { fncTry(); }
catch(Exception $ex) { fncCatch($ex); }
finally { fncFinally(); }
}else{
try { fncTry(); }
catch(Exception $ex) { fncCatch($ex); }
fncFinally();
}
Да.
phpversion () вернет строку версии php. (Пример: «5.6.14»)
Вы можете использовать это для настройки вашего условного оператора.
извините, я в замешательстве 🙂
и вы можете проверить phpversion, прежде чем сделать попытку поймать
if (версия php == 5.5 или выше)
Вы делаете это с наконец
иначе ты сделаешь это без наконец