Имя: Пароль:
IT
Веб-мастеринг
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].
https://www.php.net/manual/ru/migration54.new-features.php
10 Гончий
 
17.05.20
01:27
(0) Попробуй в скобки взять, должно работать:

$clarify_query = (appCart::get_CatalogOptions())['query'];
11 vde69
 
17.05.20
13:05
поробуй

appCart::get_CatalogOptions())->query