За последние 24 часа нас посетили 18019 программистов и 1719 роботов. Сейчас ищут 925 программистов ...

syntax error, unexpected (T_VARIABLE)

Тема в разделе "Прочие вопросы по PHP", создана пользователем guestphp, 19 апр 2015.

  1. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Здравствуйте.

    Ошибка: PHP Parse error: syntax error, unexpected '$item' (T_VARIABLE) in /адрес_директории/file.php on line 7

    7 строка:
    Код (PHP):
    1. if ( $item[$i][$a] == 1 ) { 
    поиск подобных ошибок, говорит о том, что не хватает символа ";" или ".", но функция if, использовалась из примера http://php.ru/manual/control-structures.if.html там нет дополнительных символов.

    Как устранить ошибку?
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а предыдущие 6 строк где?
     
  3. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    предыдущие строки:
    Код (PHP):
    1. foreach ($list as &$item) 
    2. {
    3.     for($i=1; $i<6; $i++)
    4. if ( $item[$i]['can_post'] == 1 ) { 
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну вот. всё логично. без фигурных скобок иф фор и иже с ними работают только на следующую строку. и в этой строке не может быть многострочного ифа. решение: цикл фор дополнить фигурными скобками.
     
  5. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Код (PHP):
    1. foreach ($list as &$item) {
    2.   for($i=1; $i<6; $i++) {
    3.     if ( $item[$i]['can_post'] == 1 ) {
    4.        echo ($item[$i]['can_post']."|".$item[$i]['uid']."<br>")
    5.     }
    6.   }
    7. }
    8.  
    PHP Parse error: syntax error, unexpected '$item' (T_VARIABLE)
     
  6. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    не, всё ок. разве что после круглой скобки не хватает ; но мы же оба понимаем что сообщение было бы другим.
     
  7. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    в чём причина ошибки:
    и как её устранить?
     
  8. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Код (Text):
    1. $list as &$item
    ничего не смущает?
     
  9. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    в приведенном мной коде, меня это не смущало, так как в первом же примере на http://php.ru/manual/control-structures.foreach.html используется &.

    Но проблема была именно в этом символе. Без & работает.
     
  10. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Вы опять не тот код приводите. Этот фрагмент правильно написан. Вот, пожалуйста, php fiddle его выполняет http://phpfiddle.org/lite/code/aqvk-db4g
    А что особенного? Так можно, чтоб php не копировал каждый элемент, а создавал ссылку. Тогда их можно менять внутри foreach
     
  11. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Ошибка говорит, что не в курсе о такой переменной, как $item.
    Честно сказать, был не в курсе об использовании ссылки именно в foreach. А теперь не понимаю, почему это работает. :)
     
  12. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    это какая ошибка о таком говорит?
     
  13. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    unexpected '$item'

    Добавлено спустя 7 минут 19 секунд:
    Да, я не так выразился, есть к чему подкопаться :D
     
  14. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ни слова о переменных же

    это недопустимо для человека который хочет достичь хорошего результата. как мы говорим про изучение английского - думать надо на нем - так же и тут недопустимо даже подумать о неоднозначности сообщения. ты не так подумал, не так выразился, тебя не так поняли. и к чему вы придете таким путем?
     
  15. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    mr.akv, Ganzal ребята не надо ссориться, проблема решена.
     
  16. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Согласен. И благодарю за указание на ошибку. Но всё же все мы люди, всем свойственно ошибаться. Главное, чтобы вовремя подсказали.
     
  17. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    никто не ссорится))) он просто сказал про переменную но там же ведь не про переменную))) я просто пожелал человеку внимательно следить за смыслом сообщения об ошибке.