PHP Ошибка с передачей списка чисел.

(Ответов: 5, Просмотров: 637)
  1. Новичок
    • Регистрация: 30.05.2011
    • Сообщений: 27
    • Репутация: 0
    Всем привет. Мне надо сделать следующее: если $day > 31, то выполняется 1 конструкция if, если неравно, то выполняется else, где находится if ($day > 30 and $month = 4 or 6 or 9 or 11), но тут происходит ошибка и $month принимает значение 4, хотя этого не должно быть. Вот код
    Код:
    if ($day > 31)
    {
      $day = $day - 31;
      $month = $month + 1;
    } else {
      if ($day > 30 & $month = 4 or 6 or 9 or 11)
      {
        $day = $day - 30;
        $month = $month + 1;
      }
    }
    Я знаю, что ошибка в строчке $month = 4 or 6 or 9 or 11, но как по другому передать значения, по которым должна сравниваться переменная $month? Я пробовал array, но не получилось. Как сделать правильно?
    • 0
  2. Дипломник Аватар для seo-player
    • Регистрация: 17.01.2010
    • Сообщений: 216
    • Репутация: 19
    • Webmoney BL: ?
    Не совсем понял что нужно сделать, но может так?

    Код:
    if ($day > 31)
    {
      $day = $day - 31;
      $month = $month + 1;
    } else {
      if ($day > 30 && ($month == 4 or $month == 6 or $month == 9 or $month == 11) )
      {
        $day = $day - 30;
        $month = $month + 1;
      }
    }
    Последний раз редактировалось seo-player; 23.07.2011 в 20:47.
    • 3

    Спасибо сказали:

    ololo(23.07.2011), webpavilion(27.07.2011), Zvеr(23.07.2011),
  3. Software Engineer Аватар для Zvеr
    • Регистрация: 07.02.2010
    • Сообщений: 603
    • Репутация: 228
    • Webmoney BL: ?
    if ($day > 30 and $month = 4 or 6 or 9 or 11) - строка ошибок.

    and в сокращенной форме пишется как && а не &. В проверке ты пытаешься $month сравнить или присвоить? В твоем коде оператор присвоения, сравнение это ==. И, если сравнивать, то так нельзя $month == 4 or 6 or 9 or 11, правильно написал seo-player :)
    • 1

    Спасибо сказали:

    ololo(23.07.2011),
  4. Гуру Аватар для 24110
    • Регистрация: 07.09.2009
    • Сообщений: 1,649
    • Репутация: 91
    Проще и наглядней будет так:

    PHP код:
    if($day 31)
    {
        
    $day $day 31;
        
    $month++;

    else if(
    $day 30 && in_array($month, array(46911)))
    {
         
    $day $day 30;
         
    $month++;

    Парам-пам-пам!
    • 0
  5. Разработка любых сайтов Аватар для ArhStrAngeR
    • Регистрация: 08.06.2011
    • Сообщений: 3,376
    • Записей в дневнике: 1
    • Репутация: 2506
    тогда вот еще проще
    PHP код:
    if($day 31$day -= 31$month++)
    else if(
    $day 30 && in_array($month, array(46911));  $day -= 30$month++) 
    • 0
  6. Опытный Аватар для WebAction
    • Регистрация: 18.11.2009
    • Сообщений: 266
    • Репутация: 135
    Вам все правильно посоветовали. Но мне больше нравиться вариант от seo-player
    • 0

    Спасибо сказали:

    seo-player(28.07.2011),

Похожие темы

Темы Раздел Ответов Последний пост
Получение списка обратных ссылок(бэков) для любого ресурса - ищу
Софт, скрипты, сервисы 0 17.06.2011 01:55
Простая CMS для представления и ведения списка сотрудников
Софт, скрипты, сервисы 11 27.08.2010 10:13
Как вытянуть слова из выдающего списка гугла
Прочее 10 24.02.2010 19:04
Советы по ведению списка дел
Дайджест блогосферы 0 06.02.2010 22:38
Ошибка: Внутренняя ошибка Remote service dnsmgr return error. Code 100
Вопросы от новичков 0 17.10.2009 23:05

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры