<rmcreative>

RSS

Разыменование массивов в trunk PHP

1 августа 2010

Ещё одна приятная новость. В транк PHP 5.4 (который, возможно, будет в итоге выпущен как PHP 6) попала очень полезная возможность — разыменование массивов:

function test() {
    return array("one" => "PHP", "two" => "trunk", "three" => "is very cool");
}
echo test()["two"]; // !!!

То есть теперь можно обращаться к индексу массива, возвращаемого из метода.

Комментарии RSS

  1. №2804
    Scriptin
    Scriptin 01 авг. 2010 г., 2:17:46

    Better beta than never!

  2. №2805
    Stamm
    Stamm 01 авг. 2010 г., 2:30:39

    Ну наконец-то!!!

  3. №2806
    100grammist
    100grammist 01 авг. 2010 г., 3:03:28

    В перле такое есть. А в других языках?

  4. №2807
    100grammist
    100grammist 01 авг. 2010 г., 3:25:17

    На счет перла я кажется ошибся

  5. №2808
    Сергей
    Сергей 01 авг. 2010 г., 4:49:16

    Давно пора

    @100grammist

    В python и JavaScript точно есть

  6. №2809
    MrCherry
    MrCherry 01 авг. 2010 г., 11:11:29

    О! Хвала небесам! )

    Часто по инерции пишу так(не только же с php работаю), а потом огорчаюсь..

  7. №2810
    Владимир
    Владимир 01 авг. 2010 г., 13:05:36

    В пхп это выглядит как-то нелепо в отличии от тех же питона с яваскриптом)

  8. №2811
    Smarty
    Smarty 01 авг. 2010 г., 13:41:38

    Еще бы массив задавать через ["one" => "PHP", "two" => "trunk", "three" => "is very cool"]

  9. №2812
    AmdY
    AmdY 01 авг. 2010 г., 13:41:53

    последние нововведения радуют своей глупостью, бесполезностью, кривостью. кому действительно нужно, возвращали объект. зачем стремиться делать новый python, чтобы в нём писать такую же кашу ?! :(

  10. №2813
    Тормоз
    Тормоз 01 авг. 2010 г., 13:45:56

    А я думал, оно так и есть :) Как-то попадал, вроде, типа интуитивно поставил вместо имени массива функцию, а не сработало.

  11. №2814
    Scriptin
    Scriptin 02 авг. 2010 г., 2:27:57

    @AmdY

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

  12. №2815
    Денис Радченко
    Денис Радченко 02 авг. 2010 г., 10:22:42

    Иногда такое нужно, например для getImageSize().

  13. №2816
    Sergunik
    Sergunik 02 авг. 2010 г., 11:42:24

    Мені пригодиться)

  14. №2819
    Wave
    Wave 03 авг. 2010 г., 21:37:20

    Ой ну как же здорово! Давно хочется мочь $query->result_array()[$i] делать. После того, как мне на форуме CI объяснили, почему так нельзя, я и не думал, что такая возможность появится.

    А с другой стороны, очень много народу ещё только-только с четвёртого пыха сползает. 5.3 до сих пор не везде установлен, а тем более не в каждом проекте поддерживается. Когда-то ещё шестёрка станет доминировать…

  15. №2821
    Psih
    Psih 04 авг. 2010 г., 17:46:18

    Wawe

    Ну из этой проблемы уже давно есть 2 выхода, которые просто нужно использовать:

    &lt;?php
    $res = $db->query();
    list($a, $b) = $res->fetch_row();
    // Или
    $res->fetch_object()->column

    Просто нужно привыкнуть что используется не fetch_assoc/fetch_row, а есть ещё list (в купе с fetch_row) и fetch_object. Давно использую и реальной надобности в fetch_row()[$i] даже не возникает.

    Но в остальном фитча полезная, в других случаях пригодится.

  16. №2835
    Ewg
    Ewg 08 авг. 2010 г., 19:09:11

    Сколько вакуумщиков набежало сразу.

  17. №9740
    vovasik
    vovasik 03 апр. 2015 г., 17:54:36

    как выяснилось позднее php 5.4 назвали php 5.4 , а php 5.6 назвали своим именем :)

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.