Я не могу получить доступ к своим переменным среды Heroku, когда запускаю PHP-скрипт. На картинке ниже вы можете видеть, что у меня есть переменная TEST_VAR.
Фрагмент кода ниже должен выводить эту переменную, вместо этого я ничего не получаю:
$url = getenv('TEST_VAR');
echo $url;
Я попробовал это и получил «Ошибка!», поэтому getenv('TEST_VAR') это false:
if (getenv('TEST_VAR')) {
$url = getenv('TEST_VAR');
echo $url;
} else {
die('Error!');
}
На этом рисунке вы можете увидеть вывод обоих фрагментов (пустая строка и ошибка!).
{} или Ctrl+K, блок кода будет иметь отступ в четыре пробела, что заставит его отображаться как код.
Обратите внимание, что вам не нужно использовать HTML в своем вопросе. Stack Overflow поддерживает уценку, простой язык форматирования, который намного легче набирать и читать.
Обратите внимание, что ваш фрагмент на самом деле не гарантирует, что getenv('TEST_VAR') возвращает false. Многие другие значения оцениваются как false в логическом контексте в PHP.. Например, если бы TEST_ENV была установлена на пустую строку, я думаю, вы получите тот же результат. Рекомендуется использовать print_r или var_dump или, что еще лучше, использовать отладчик, чтобы увидеть реальное значение переменной.






Похоже, вы запускаете этот код в своей локальной командной строке. heroku config:set устанавливает переменные средыдля вашего приложения на Heroku. Это ничего не делает с вашей локальной средой.
Чтобы использовать переменные среды локально, вы должны установить их другим способом. Вы можете сделать это вручную, используя любые инструменты, которые предоставляет ваша операционная система, но интерфейс командной строки Heroku также предоставляет команда heroku local вместо считывает переменные среды из файла с именем .env и заполняет их для вас.
Просто создайте файл .env, содержащий ваши переменные, например.
TEST_VAR=hello_world
а затем запустите свой код через heroku local. По умолчанию это запустит ваш процесс web, как указано в вашем Procfile. Если вы уже настроили переменные с помощью heroku config:set, вы можете скопируйте их в свой .env файл:
heroku config:get TEST_VAR >> .env
Обратите внимание, что файл .env не должен быть зафиксирован в вашем репозитории. Он предназначен только для локального использования. На Heroku вы должны продолжать устанавливать переменные конфигурации, используя heroku config:set.
«Фрагмент кода ниже должен выводить эту переменную» — да, вероятно, должен. Что вместо этого возвращает
getenv('TEST_VAR')? Как вы запускаете этот код? Прочтите Как спросить.