|
PHP как сократить обращение к функции в одну строку? |
☑ |
0
sysadminlk
16.05.20
✎
11:25
|
$clarify_query = appCart::get_CatalogOptions();
$clarify_query = $clarify_query['query'];
как написать тоже самое одной строкой, за один вызов?
типа вот так appCart::get_CatalogOptions()['query'];
|
|
1
sysadminlk
16.05.20
✎
11:39
|
переписал appCart::get_CatalogOptions()
чтоб сразу получить значение передаю теперь в нее appCart::get_CatalogOptions('query')
и получаю то что нужно.
но осталось интересным какие можно было применить конструкции для извлечения сразу из запроса тех данных которые необходимы
может есть встроенная php функция которая позволит в переменную записывать только те ключи которые нужно.
например $clarify_query = extract_by_key('query',appCart::get_CatalogOptions());
хотя extract_by_key можно и самому написать )))
function extract_by_key($key,$array){
return $array[$key];
}
|
|
2
Генератор
16.05.20
✎
11:51
|
у меня работает:
function get_CatalogOptions() {
return ['query' => 'some query',
'query2' => 'some query 2'];
}
$query = get_CatalogOptions()['query'];
echo $query;
|
|
3
sysadminlk
16.05.20
✎
11:58
|
(2) Parse error: syntax error, unexpected '[' in /home/link/www/index222.php on line 2
|
|
4
Генератор
16.05.20
✎
12:00
|
(3) наверное PHP сильно старое
|
|
5
sysadminlk
16.05.20
✎
12:01
|
<?php function get_CatalogOptions() {
$a = array();
$a['query'] = 'some query';
$a['query2'] = 'some query 2';
return $a;
}
$query = get_CatalogOptions()['query'];
echo $query;
?>
Parse error: syntax error, unexpected '[' in /home/link/www/index222.php on line 7
|
|
6
sysadminlk
16.05.20
✎
12:01
|
PHP Version 5.2.17-pl0-gentoo
|
|
7
Генератор
16.05.20
✎
12:02
|
(6) ну понятно, объявлять массивы через [] можно с версии 5.4
|
|
8
sysadminlk
16.05.20
✎
12:05
|
(7) уже php-7.4.6 оказывается есть )))))
Короче я сильно устарел.
|
|
9
Генератор
16.05.20
✎
12:06
|
Добавлена возможность разыменования массивов, возвращаемых функциями. Например: foo()[0].
|
|
10
Гончий
17.05.20
✎
01:27
|
(0) Попробуй в скобки взять, должно работать:
$clarify_query = (appCart::get_CatalogOptions())['query'];
|
|
11
vde69
17.05.20
✎
13:05
|
поробуй
appCart::get_CatalogOptions())->query
|
|