Портирую один из кастомных модулей D6. Обнаружил в коде (это реально был рабочий модуль):
<?php
...
function poservices_order_create_new(PoserviceMerchant $merchant, $email, $serviceID = 0, $data = array()) {
if (0 == $serviceID || false === ($service = poservices_get_pServices($merchant->mid, $serviceID))) {
drupal_set_message('Попытка сохранить пустой заказ.', 'error');
break; // << what the hell?
}
// ... код ...
return true;
// ... код ...
return false;
}
?>
Какое тут поведение ожидается от break;
(только навскидку, не подглядывая в Гугл) ? IDE, кстати, подчеркнула эту строку красным.
Комментарии
чувак хотел выйти из хука досрочно?
Меня всегда сбивают с толку подобные неоднозначные конструкции.
Например, из user notes к break:
Но там-то всё понятно, нет внешнего цикла и внешнего тела вообще.
А здесь-то что хотели сделать? Завершить функцию или завершить работу текущего included-скрипта или, может, вообще завершить PHP-процесс? Хотя последнее не так делается.
---
PS. Опять же, судя по всему функция возвращает булевы значения. Почему бы не вернуть просто FALSE? Коллстек сейчас отслеживать нет желания, но может таки обработчик результата как-то слишком однозначно интерпретирует результат и FALSE считается ошибкой другого характера.
Break - значит ломать. Может хотели сломать?
Ну, ещё есть значение "перерыв", "пауза".
Возможно, в этом месте начинается обед или ланч.