Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20

Операторы if else и switch

27.10.2015, 14:45. Показов 1665. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я написал такой код, он в зависимости от время дня приветствует пользователей :
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$time = strftime('%H');
 
 if($time >=6 and $time <=11){
     echo'Доброе утро';
     
    }
elseif($time >=12 and $time <=18){
    echo'Добрый день';
    
    }
elseif($time>=19 and $time <=24){
    echo'Доброй вечер';
}
а как его записать через оператор switch?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2015, 14:45
Ответы с готовыми решениями:

Операторы if/else, do/while, switch
Всем привет, не шарю в программировании, нужно защитить работу в унике. Подскажите плиз, как работают: if...else do...while ...

Операторы if switch
1.Сделать программу определения стоимости комплектующих к ПК. Выбирается вид комплектующий, вводиться количество, выводиться общая...

Операторы case, switch
Вычислить количество дней, оставшихся до конца года

20
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
27.10.2015, 14:52
Никак )
1
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
27.10.2015, 15:02  [ТС]
спс я просто думал что switch альтернатива if else значит можно)
0
433 / 352 / 259
Регистрация: 29.11.2011
Сообщений: 628
27.10.2015, 15:11
Цитата Сообщение от GaLs Посмотреть сообщение
а как его записать через оператор switch?
Если очень "нужно", то например так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$time = strftime('%H');
 
switch (true) {
    case ($time >= 6 && $time <= 11):
        echo'Доброе утро';
    break;
    case ($time >= 12 && $time <= 18):
        echo'Добрый день';
    break;
    case ($time >= 19 && $time <= 24):
        echo'Доброй вечер';
    break;
}
1
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
27.10.2015, 15:29  [ТС]
спс не то что оно мне нужно я просто только начал изучать php, сижу экспериментирую

Добавлено через 11 минут
Еще вопрос. Допустим я захожу в интернет магазин и добавляю себе какой нить товар в корзину. У меня будет на сайте писать 1 товар, если я добавлю еще то будет уже 2,3,4 товара потом 5,6,7,8,9,10 и т.д товаров и 0 тоже товар.

как это написать c помощью switch
0
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
27.10.2015, 15:44
Цитата Сообщение от GaLs Посмотреть сообщение
как это написать c помощью switch
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$amount = n; 
$word = 'Товар'
switch ($amount % 10) {
    case 1:
        echo $word;
    case 2:
    case 3:
    case 4:
        echo $word . 'a';
    default:
        echo $word . 'ов'
}
1
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
27.10.2015, 15:56  [ТС]
спс правильней только будет вот так)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$amount = 4; 
$word = 'Товар';
switch ($amount % 10) {
    case 1:
        echo $word;
        break;
    case 2:
    case 3:
    case 4:
        echo $word . 'a';
                break;
    default:
        echo $word . 'ов';
}
вопросик % 10 это что и как работает?
0
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
27.10.2015, 17:45
Цитата Сообщение от GaLs Посмотреть сообщение
вопросик % 10 это что и как работает?
Ну 'n' подразумевало любое натуральное число.
% n - остаток от деления на n.
Так же не рассматривается вариант с 10-19, где будет "..ов" всегда.
1
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
29.10.2015, 12:05  [ТС]
Еще вопросик:
Допустим у меня на сайте есть рассылка по email всем пользователям. При регистрации они указывали только ИФО. Как написать код с помощью switch или if else чтоб письмо с телом допустим "Уважаемый ....." приходило только мужчинам, а "Уважаемая...." женщинам?
0
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
29.10.2015, 14:23
Цитата Сообщение от GaLs Посмотреть сообщение
Как написать код
С помощью выборки пола из базы данных, где 1 - девушка, 0 - парень (или наоборот, кому как удобно). И
PHP
1
2
3
4
5
if($gender == 1) {
    //Уважаемая
} else {
    //..ый
}
0
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
29.10.2015, 16:39  [ТС]
Написал скриптик такой:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
 $name = 'Смирнова Екатерина Сергеевна';
$age = substr($a, -2, 2);
switch ($rest) {
  case 'ич':
    echo 'Уважаемый '.$a;
  break;
  case 'на':
    echo 'Уважаемая '.$a;
  break;    
  default:
    echo 'Уважаемый(-ая) '.$a;
  break;
}
Не могу понять где ошибка постоянно выводит Уважаемый(-ая)
0
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
29.10.2015, 21:20
Наверное, потому что $rest нигде не объявлена?
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
29.10.2015, 21:35
так же само как и $a и зачем тут результат в $age ?
0
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
30.10.2015, 09:40  [ТС]
Да с переменными напортачил. Вот вроде бы все правильно:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$a = 'Смирнова Екатерина Сергеевна';
$rest = substr($a, -2, 2);
switch ($rest) {
  case 'ич':
    echo 'Уважаемый '.$a;
  break;
  case 'на':
    echo 'Уважаемая '.$a;
  break;    
  default:
    echo 'Уважаемый(-ая) '.$a;
  break;
}
все ровно выдает выводит Уважаемый(-ая)
0
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
30.10.2015, 11:07
Сделайте перед свитчем
PHP
1
var_dump($rest);
посмотрите, что хранится в переменной и уже из этого делайте выводы.
0
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
30.10.2015, 14:50  [ТС]
все разобрался надо было использовать не substr, а как для русского текста mb_subst и все заработала
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$name='Смирнова Екатерина Сергеевна';
  $rest=mb_substr($name,-2,2); 
  switch (rest){
      case 'ич':
          echo 'Уважаемый' . $name;
          break;
       case'на':   
  echo"Уважаемая' . $name;
  break;
  
  default:
      echo'Уважаемый(ая)' . $name;
1
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
30.10.2015, 14:55
Цитата Сообщение от GaLs Посмотреть сообщение
switch (rest)
здесь $ забыли поставить. $rest
0
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
30.10.2015, 16:33  [ТС]
Цитата Сообщение от Azdeman Посмотреть сообщение
здесь $ забыли поставить. $rest
спс но это мелочи)
0
1 / 1 / 0
Регистрация: 08.07.2015
Сообщений: 20
10.11.2015, 11:00  [ТС]
Подскажите есть такой массив:
PHP
1
2
3
4
5
$bmw=array('X5'=>'model',120=>'speed',5=>'doors',2006=>'yaer');
 
  $tayota=array('Carina'=>'model',130=>'speed',4=>'doors',2007=>'yaer');
  
 $opel=array('Corsa'=>'model',140=>'speed',5=>'doors',2007=>'yaer');
как вывести значение трех массивов в виде: name - model - speed - doors -2006 -yaer
Как я понимаю через цикл foreach
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
10.11.2015, 11:24
Цитата Сообщение от GaLs Посмотреть сообщение
есть такой массив:
Цитата Сообщение от GaLs Посмотреть сообщение
значение трех массивов
Так изначально один массив или три?

И вы перепутали местами ключи и значения.

PHP
1
2
3
4
5
6
$arr = array();
$arr[] = array('name' => 'BMW', 'model' => 'X5', 'speed' => 120);
$arr[] = array('name' => 'Opel', 'model' => 'Corsa', 'speed' => 140);
 
foreach($arr as $item)
    echo $item['name'] . ' ' . $item['model'] . ' ' . $item['speed'] . '<br>';
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2015, 11:24
Помогаю со студенческими работами здесь

Операторы ветвления if, else, и switch
В каком случае лучше использовать операторы ветвления if, else, а в каком switch?

Не работают операторы сравнения в switch
Вот блин че то он ругаеться на знаки сравнения в case. Походу тут они не поддерживаються? Или как мне это реализовать.. таковы условия ...

Операторы switch, break, goto
Добрый день! Дали такое вот задание, сижу уже 7 часов над ним и никак не составлю её :cry: Xн=0; Хк=30 -- в этом интервале нужно,...

Условные операторы и оператор switch
Пусть k – целое число от 1 до 365. Оно имеет смысл номера дня в году (не високосном). Определить, на какой день недели приходится этот...

Что делают операторы switch/case
что делают функции : switch ? case ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru