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

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


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

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

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

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

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

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


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

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

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


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