2015-12-03 2 views
2

Я знаю, что я могу установить переменную окружения с помощьюКак отключить переменную среды с помощью php?

putenv("ENV_FOO=SOMETHING"); 

и получить значение с помощью:

getenv("ENV_FOO"); 

Если переменная не установлена, getenv("ENV_FOO") вернется false.

У меня есть набор функций, который можно установить с помощью переменной окружения , и я хотел бы выполнить модульное тестирование поведения, когда переменная установлена ​​или не установлена.

Еще раз экспортировать переменную на моем Dev машины в Баш через

export ENV_FOO=something` 

это разбивает мое модульное тестирование, так как я не могу сбросить значение переменной среды с использованием PHP для объема теста.

Я пробовал putenv("ENV_FOO=");, но это вернет в пустую строку "", а не в переменную среды unset для текущего сеанса оболочки.

Есть ли способ отключить переменную окружения для текущего сеанса оболочки или мне нужно изменить способ проверки существующей переменной?

ответ

9

Попробуйте из putenv docpage комментарии

<?php 
putenv('MYVAR='); // set MYVAR to an empty value. It is in the environment 
putenv('MYVAR'); // unset MYVAR. It is removed from the environment 
?> 
+0

Это не работает для меня. Затем я снова понял, что использую hhvm, у которого есть ошибка: это не работает: https://github.com/facebook/hhvm/issues/2533 – k0pernikus

+0

жаль слышать это :(вы можете попробовать 'shell_exec (" unset FOO "); 'если вы не установили переменную env с помощью php, может работать –

+0

, на самом деле это не сработает, проигнорируйте его :) –

Смежные вопросы