За последние 24 часа нас посетили 21673 программиста и 1060 роботов. Сейчас ищут 714 программистов ...

Ошибка с unexpected T_VARIABLE, expecting '('

Тема в разделе "PHP для новичков", создана пользователем odesa2010, 24 май 2016.

  1. odesa2010

    odesa2010 Новичок

    С нами с:
    24 май 2016
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте. Если не сложно, обьясните, в чем ошибка и помогите ее исправить. Буду очень благодарен.
    Версия PHP 5.2

    PHP:
    1.  <br /> <b>Parse error</b>: syntax error, unexpected T_VARIABLE, expecting '(' in <b>[...][...]</b> on line <b>9</b><br />
    PHP:
    1. <?php
    2. if (@preg_match("|^[-0-9\.A-F]{1,12}$|i", $_POST['prev']))
    3. {
    4. if (preg_match("|^[-0-9\.A-F]{1,12}$|i", $_POST['that']))
    5. {
    6.     $prev=$_POST['prev'];
    7.     $that=$_POST['that'];
    8.     $tarif=$_POST['action'];
    9. if $_POST['action'] == 1) $res = ($that - $prev) * 5,64;
    10. elseif ($_POST['action'] ==2) { $res = ($that - $prev)*4,656;
    11.  
    12. }
    13. elseif ($_POST['action']==3) { $res = ($that - $prev)*10,296;
    14.  
    15. }
    16. elseif ($_POST)['action']==4 { $res = ($that - $prev)*2,592;
    17. echo 'Відповідь' . $res;
    18. }
    19. }
    20. }
    21. else echo "Заповніть усі поля";
    22. ?>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    скобки нет, должно быть
    PHP:
    1. if ($_POST['action'] == 1) $res = ($that - $prev) * 5,64;
     
  3. odesa2010

    odesa2010 Новичок

    С нами с:
    24 май 2016
    Сообщения:
    4
    Симпатии:
    0
    каким образом?
    PHP:
    1. (if($_POST['action']==1)$res=($that-$prev)*5,64;)
    или
    PHP:
    1. ((if($_POST['action']==1)$res=($that-$prev)*5,64;))
    ??
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @odesa2010 смотри, после if нету ( после ) которая после if нету { и до elseif нету } на 10 строке, ты нарушил синтаксис. Почитай документацию по if.

    https://secure.php.net/manual/ru/control-structures.if.php
    https://secure.php.net/manual/ru/control-structures.elseif.php

    используй отступы, чтобы было приятно читать код
    PHP:
    1. <?php
    2. if (@preg_match("|^[-0-9\.A-F]{1,12}$|i", $_POST['prev'])) {
    3.     if (preg_match("|^[-0-9\.A-F]{1,12}$|i", $_POST['that'])) {
    4.  
    5.         $prev = $_POST['prev'];
    6.         $that = $_POST['that'];
    7.         $tarif = $_POST['action'];
    8.  
    9.         if ($_POST['action'] == 1) {
    10.             $res = ($that - $prev) * 5, 64;
    11.         } elseif ($_POST['action'] == 2) {
    12.             $res = ($that - $prev) * 4, 656;
    13.         } elseif ($_POST['action'] == 3) {
    14.             $res = ($that - $prev) * 10, 296;
    15.         } elseif ($_POST) ['action'] == 4 {
    16.             $res = ($that - $prev) * 2, 592;
    17.             echo 'Відповідь' . $res;
    18.         }
    19.     }
    20. } else {
    21.    echo "Заповніть усі поля";
    22. }
     
  5. odesa2010

    odesa2010 Новичок

    С нами с:
    24 май 2016
    Сообщения:
    4
    Симпатии:
    0
    PHP:
    1. <?php
    2. ....
    3.     $prev=$_POST['prev'];
    4.     $that=$_POST['that'];
    5.     $tarif=$_POST['action'];
    6. if $_POST['action'] == 1) {$res = ($that - $prev) * 5,64;
    7. } elseif ($_POST['action'] ==2) { $res = ($that - $prev)*4,656;
    8. }....
    По идее, при добавлении фигурных скобок не перестает отображаться ошибка
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @odesa2010 я ещё писал про обычную скобку после if вот такую: (
    В документации описан синтаксис, что не понятно?

    Ещё у чисел с плавающей точкой, надо использовать точки, а у тебя запятые.
    https://secure.php.net/manual/ru/language.types.float.php
     
  7. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    170
    Симпатии:
    14
    у тебя опять написано\
    PHP:
    1. if $_POST['action'] == 1)
    тебе же написали как должно быть

    Хотя судя по тому что ты дальше пишешь фигурные скобки, то нужно и тут их добавить:
    PHP:
    1. if ($_POST['action'] == 1){ $res = ($that - $prev) * 5.64; }
    Р.S.Фигурные скобки это { и }
     
    #7 zahermaher, 24 май 2016
    Последнее редактирование: 24 май 2016