При получении значения ключа с массива почему-то получается что он пустой, хотя он указан

При получении значения ключа с массива почему-то получается что он пустой, хотя он указан.

<?php

$config = include('config.php');

function send_message($message)
{   
    return $config['token'];
    
}

$r = send_message("test");

die($r);

?>

Сам config.php:

<?php

return array(
    'token' => '7e5877821d1ae3fd4cb7749e140f8b222ff91c800849d',
    'enot' => array(
        'merchant' => 1111,
        'secret' => '',
        'secret2' => '',
    ),
    'unitpay' => array(
        'pub_key' => '',
        'sec_key' => '',
    ),
    'shop' => array(
            1 => array(
                '400',
                '.setvip %s 1',
            ),
    ),
);

?>

Почему при возвращении значения оно пустое? Хотя в конфиге оно указано.


Ответы (1 шт):

Автор решения: Slava Rozhnev

В вашем коде две ошибки:

  1. Название функции не соответствует выполяемому действию
  2. Переменная $config определена вне скопа функции, следовательно должна быть указана как глобальная
    
    $config = include "config.php";
    
    function get_config($key)
    {
        global $config;
    
        return $config[$key];
    }
    
    $token = get_config("token");
    
    die($token);

→ Ссылка