Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как написать =array(key=>val)[func_returns_key()] ? / 10 сообщений из 10, страница 1 из 1
04.06.2012, 11:48:38
    #37823927
Дмитрий Исаев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
Можно ли такую конструкцию записать в одну строчку, без дополнительных переменных?

Код: php
1.
echo array('key1'=>'val1', 'key2'=>'val2')[func_returning_key()]; // код нерабочий, есс-но :)
...
Рейтинг: 0 / 0
04.06.2012, 11:52:08
    #37823935
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
А собственно, зачем? Сколько будет элементов в массиве?
...
Рейтинг: 0 / 0
04.06.2012, 12:16:19
    #37823979
Дмитрий Исаев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
Для краткости. И ради интереса, можно или нет. 2 или 3 элемента с короткими значениями.
...
Рейтинг: 0 / 0
04.06.2012, 12:26:06
    #37823998
Edd.Dragon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
Ну если два, то тут просто (func_returning_key() == '***' ? 'aaa' : 'bbb');


Если больше - рискуете в мартышку и очки превратиться ))
В две строчки читабельнее будет.
...
Рейтинг: 0 / 0
04.06.2012, 12:30:43
    #37824004
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
Дмитрий Исаев,

типа анонимные массивы? нет нельзя

если хочется краткости. то надо больше конкретики что именно вы хотите сделать.
выбрать одно значение из двух можно и без массивов
Код: php
1.
echo func_returning_key()=='key1'  ? 'val1' : 'val2';
...
Рейтинг: 0 / 0
04.06.2012, 12:31:33
    #37824007
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
r u,

опоздал)
...
Рейтинг: 0 / 0
04.06.2012, 12:46:06
    #37824040
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
r uДмитрий Исаев,

типа анонимные массивы? нет нельзя

если хочется краткости. то надо больше конкретики что именно вы хотите сделать.
выбрать одно значение из двух можно и без массивов
Код: php
1.
echo func_returning_key()=='key1'  ? 'val1' : 'val2';


ждемс следующего выхода PHP - там можно так делать
...
Рейтинг: 0 / 0
04.06.2012, 12:56:50
    #37824065
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
Ренат,

ну да
в 5.4 есть Array dereferencing
интересно сработает ли именно вариант ТСа. надо проверять
...
Рейтинг: 0 / 0
04.06.2012, 13:28:30
    #37824130
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
вроде да, у кого есть пхп5.4 тест в студию)
...
Рейтинг: 0 / 0
04.06.2012, 13:52:27
    #37824182
Дмитрий Исаев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как написать =array(key=>val)[func_returns_key()] ?
r uесли хочется краткости. то надо больше конкретики что именно вы хотите сделать.
выбрать одно значение из двух можно и без массивов

Примерно так:
Код: php
1.
2.
$post_types = array('page' => 'Articles', 'post' => 'News'); // значения могут добавляться
echo $post_types[get_type()];
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как написать =array(key=>val)[func_returns_key()] ? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]