Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > goto


Автор: Muerto 23.8.2011, 15:29
Нужно сделать

Код

if(!empty($place))
    goto $place;


Как посоветуйте это выполнить?

Почему то не принимает переменную...

А то лень switch case или ifelse на страницу ограменную ставить...

Автор: Evghenusi 23.8.2011, 15:39
Цитата(Muerto @  23.8.2011,  15:29 Найти цитируемый пост)
А то лень switch case или ifelse на страницу ограменную ставить...
мне смысл не понятен.

а goto разве работает с переменными? он же только для меток

Добавлено через 3 минуты и 29 секунд
да и goto кажется избавились, теперь можно пользоваться только break

может вам эта ссылка поможет http://md.php.net/manual/en/control-structures.goto.php

Добавлено через 9 минут и 36 секунд
Цитата

Goto

Никаких команд goto не будет добавлено. Однако, команда break расширится статической меткой, поэтому будет возможно написать break foo и это перекинет на метку foo: в вашем коде.
http://www.php.su/articles/?cat=php6&page=php6(хотя может я тороплюсь)

Автор: Muerto 23.8.2011, 15:53
Ну мне проект сейчас нужно написать, а не через 4 года для php 6  smile 

А только для меток или нет, в этом и стуь проблемы  smile 

А смысл прост...

Есть большая большая страница...
по меню хочу перейти в секцию...
лень скобки выставлять и ифы делать, или свитч-кейсы...

Мне просто попался в руки говнистое подобье фреймворка... а работать нужно...

Считай что каждый data: для goto data; будет как бы controller/action , эт нужно толь ко на одной странице...

В общем пока решил проблему таким образом

Код

switch($place){
    case 'a':
        goto a; 
    break;
    case 'b':
        goto b; 
    break;
    case 'c':
        goto c; 
    break;
    default:            
    break;
}

Автор: Evghenusi 23.8.2011, 16:15
Цитата(Muerto @  23.8.2011,  15:53 Найти цитируемый пост)
Ну мне проект сейчас нужно написать, а не через 4 года для php 6  smile 


Цитата(Evghenusi @  23.8.2011,  15:39 Найти цитируемый пост)
(хотя может я тороплюсь) 
__________

так ничего и не понял  smile , но вопрос возник
Цитата(Muerto @  23.8.2011,  15:53 Найти цитируемый пост)
switch($place){
    case 'a':
        goto a; 
    break;
    case 'b':
        goto b; 
    break;
    case 'c':
        goto c; 
    break;
    default:            
    break;
}
где тут переменная $place ?

Добавлено через 37 секунд
аха, догнал, но значение переменной использовать в качестве метки...это дааа, интересно)
не знаю, можно ли так

Автор: Muerto 23.8.2011, 17:43
Evghenusi Вопрос конечно можно обсуждать и дальше...
Но поскольку у клиента оказываетсчя php 5.2 , пришлось ставтиь switch case на всю страницу без goto  smile 

Автор: Shogun 23.8.2011, 17:54
Ну как вариант чтобы не писать длиные switch или if то можно блоки в функции а саму проверку как-то так:
Код

$default = 'a';
$places = array('a', 'b', 'c', 'd');
$place = in_array($place, $places) ? $place : $default;

call_user_func($place);

Автор: Muerto 24.8.2011, 09:43
Цитата(Shogun @ 23.8.2011,  17:54)
Ну как вариант чтобы не писать длиные switch или if то можно блоки в функции а саму проверку как-то так:
Код

$default = 'a';
$places = array('a', 'b', 'c', 'd');
$place = in_array($place, $places) ? $place : $default;

call_user_func($place);

 Оригинально  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)