Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2012, 11:48   #1
fishlabsoman
Новичок
Джуниор
 
Регистрация: 05.10.2010
Сообщений: 2
Смущение PHP - case внутри функции нужен ли break когда делаем return?

Доброго времени суток форумчане!
После целой ночи кодинга заметил прикол в коде, который мне не дает спокойно лечь спать в конце концов:

PHP код:
<?php

function check($fruit "") {
    
//код какойто
    // чтото делаем с фруктом
    //код кончился

    //проверка чего либо через свитч
    
switch ($fruit['name']) {
        case 
'apple' : {
            if (
$fruit['health'] < 50) {
                echo 
'фрукт плохой';
                return 
0;
                break;
            } else {
                echo 
'фрукт хороший';
                return 
1;
                break;
            }
        }
        default : {
            echo 
'я не знаю такого';
            return 
0;
            break;
        }
    }
}
Так вот надо ли делать break если выход из свитча происходит раньше по return?
Есть ли какие-либо эстетические причины писать/не писать break?

Ps: Первый раз тут спрашиваю, раньше тока поиском пользовался
fishlabsoman вне форума Ответить с цитированием
Старый 29.10.2012, 11:55   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

я бы вместо return присваивал переменной результат $result=0; итд .... все breake рставил ... а в конце функции отдавал бы результат return $result
ADSoft вне форума Ответить с цитированием
Старый 29.10.2012, 11:56   #3
9i.
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 103
По умолчанию

я бы сделал так
Цитата:
Сообщение от fishlabsoman Посмотреть сообщение

PHP код:
<?php

function check($fruit "") {
    
//код какойто
    // чтото делаем с фруктом
    //код кончился

    //проверка чего либо через свитч
$res "";    
switch (
$fruit['name']) {
        case 
'apple' : {
            if (
$fruit['health'] < 50) {
                
$res 'фрукт плохой';
                break;
            } else {
                
$res 'фрукт хороший';
                break;
            }
        }
        default : {
            
$res 'я не знаю такого';
        }
    }
    return 
$res;
}
а вообще по идеи после return'а функция не выполняется и break'и можно опустить
9i. вне форума Ответить с цитированием
Старый 29.10.2012, 12:15   #4
fishlabsoman
Новичок
Джуниор
 
Регистрация: 05.10.2010
Сообщений: 2
По умолчанию

Короче пока оставлю как есть, тока брэйки уберу.
в том случае присваивать переменной что либо и выводить смысла в общем то нет, все равно оно завершается либо раньше когда идут первые проверки,
а потом идут в кейс с 5 элементами (типы сервера), где еще по пачке кода для каждого варианта.

в моем случае это запускалка серверов (пишу панель управления игровым хостингом) и в кейсе код, который проверяет состояния сервера (включен/выключен/неизвестно и прочее), и в конце концов формирует команду запуска.

в return либо статус ошибки, либо пид процесса

Хотя можно сделать, но в другом месте уже с перемнными, тогда и в функции анализ ошибок сделать можно!

Спасибо!

Последний раз редактировалось fishlabsoman; 29.10.2012 в 12:21.
fishlabsoman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для чего case нужен в record? VintProg Общие вопросы Delphi 14 22.10.2013 23:48
HTML, PHP, JavaScript. Делаем заказы! screet Фриланс 0 27.08.2011 00:42
Не работает CASE для NULL в выборке из view (скриншот внутри Ivan_32 SQL, базы данных 2 12.04.2011 22:16
return 1 в void функции ! интеграл Помощь студентам 6 17.03.2010 22:00