За последние 24 часа нас посетил 54171 программист и 1721 робот. Сейчас ищет 841 программист ...

Хотелось бы, чтобы работало. Но нет. А хотелось бы.

Тема в разделе "PHP для новичков", создана пользователем Honanaipr, 5 июн 2017.

  1. Honanaipr

    Honanaipr Новичок

    С нами с:
    5 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Решаю задачи с http://theory.phphtml.net

    PHP:
    1. <?php
    2. $arr = [1, 2, 4, 5, 5];
    3. $arr = ($arr = array_unique($arr))[count($arr)-2];
    4. var_dump($arr);
    5. ?>
    Выдает:
    Parse error: syntax error, unexpected '[' in F:\wamp64\www\My.php on line 3

    Знаю как сделать, чтобы работало, но хотелось бы обойтись одной строчкой (чисто из эстетических соображений).

    Почему так не работает?
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Версия php какая?
     
  3. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @Honanaipr у нас тут приветствуются более осознанные названия тем
     
    denis01 нравится это.
  4. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
  5. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    больше на 5.х похоже, ибо 7.х уже знают про квадратные скобки в объявлении массива
     
  6. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
  7. Honanaipr

    Honanaipr Новичок

    С нами с:
    5 июн 2017
    Сообщения:
    14
    Симпатии:
    0
    Спасибо.
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    B 5.x тоже работает же, начиная с 5.4
     
  9. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Все работает, я на 5.6 активно уже юзал это вот все.
    --- Добавлено ---
    Если внимательно приглядеться,сломалось-то в другом месте.
    --- Добавлено ---
    Сломалось в foo()['bar'].
    До 7 нельзя было так адресовываться к результату вызова функции без промежуточного сохранения оного в переменную.
     
  11. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Код (Text):
    1. ($arr = array_unique($arr))[count($arr)-2]
    не работает именно эта конструкция, т.е. результат выполнения сам по себе не является массивом.
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Ды нет, является. В версии нормальной код работает. Проблема именно в обращении таком. 7.0.1 уже понимает, чего от нее хотят.
    --- Добавлено ---
    Помню, был безумно рад, когда это в пых завезли наконец-то. Не хватало очень.
     
  13. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Ну, просто у вас был разговор про квадратные скобки, а твой апдейт к посту появился уже после того как я написал.
     
  14. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @Fell-x27 точняк, оно ж в третью строку ругаеццо