Как обратиться к элементу массива напрямую

Тема в разделе "PHP", создана пользователем drawing4, 30 ноя 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Пример из мануалов по функции.

    PHP:
    <?php
    // Пример 1
    $pizza  "piece1 piece2 piece3 piece4 piece5 piece6";
    $pieces explode(" "$pizza);
    echo 
    $pieces[0]; // piece1
    echo $pieces[1]; // piece2

    ?>
    Интересует, если нужно получить значение piece1 сразу (без использования переменной pieces) это можно как-то сделать?
     
  2. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    в PHP - нет, нлеьзя.
    "на лету" можно только обращатся к свойствам объектов
     
    drawing4 нравится это.
  3. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Вон оно чего :bh:

    Как выход додумался до передачи строки, массива и номера объекта в функцию, и выведения результата с помощью этой функции, но это нифига не проще получится
     
  4. propovednik

    propovednik Постоялец

    Регистр.:
    16 май 2008
    Сообщения:
    104
    Симпатии:
    21
    анонимными функциями если сильно надо
    PHP:
    $pieces = function () {
    global 
    $pizza;
    return 
    explode(" "$pizza); 
    }
    echo 
    $pieces[0]; 
     
  5. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    propovednik
    вы бы свой код хоть прогоняли бы прежде чем писать глупости.
    начнем с синтаксической ошибки:
    объявление анонимной функции является выражением, и поэтому в данном случае после него нужно поставить точку с запятой.

    во-вторых, вы пытаетесь использовать функцию(а не результат ее вызова) как массив
    И это, разумеется вызовет
     
  6. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Да нет, анонимные функции это не вариант.
    Я хотел код более изящным сделать, по-видимому не получится. Ну либо сделаю функцию как выше писал.

    Мне нужен только первый элемент из массива который explode возвращает. А делать присвоение массива переменной и потом из этой переменной брать первый элемент - чего-то не понравилась такая конструкция
     
  7. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    чем array_shift() не угодил ?

    echo array_shift(function ());
     
    drawing4 нравится это.
  8. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Ок, в моем случае он подойдет, а как тогда быть если нужен не первый элемент массива? Два (n-раз) обращаться к функции не вариант.

    Есть что-то вроде этого но чтобы возвращало значение с номером n где n - передаваемый параметр? Посмотрел документацию по массивам, не нашел.

    Всех функций просто не помню, как не помнил и о array_shift
     
  9. ZCFD

    ZCFD

    Регистр.:
    16 янв 2008
    Сообщения:
    989
    Симпатии:
    437
    напиши свою такую

    вообще не вижу проблемы -- если тебе это нужно раз-два -- сделай переменную
    если часто - напиши свою функцию

    учти что это ухудшает читабельность кода
     
  10. drawing4

    drawing4

    Регистр.:
    21 ноя 2008
    Сообщения:
    323
    Симпатии:
    37
    Да я так и поступлю, просто иногда возникают сомнения на тему "недоучился".
     
Статус темы:
Закрыта.