如何在 laravel 或 php 中动态更改 php dotenv (.env) 变量?

fic*_*489 8 php laravel

我想要这样的东西:

env('APP_ENV');
setenv('APP_ENV', 'testing');
env('APP_ENV');
Run Code Online (Sandbox Code Playgroud)

输出 :

staging
testing
Run Code Online (Sandbox Code Playgroud)

我找到了一个答案How to Change Variables in the .env filedynamic in Laravel? 但这里.env是永久保存的,我不想永久保存。phpunit 是如何做到这一点的?因为我可以在 phpunit.xml 中放入以下内容:

...
<php>
    <env name="APP_ENV" value="testing"/>
</php>
....
Run Code Online (Sandbox Code Playgroud)

env('APP_ENV') 给了我“测试”......

fic*_*489 7

putenv() 的工作就像一个魅力:

echo env('APP_ENV');
putenv('APP_ENV=testing');
echo env('APP_ENV');
Run Code Online (Sandbox Code Playgroud)

输出:

staging
testing
Run Code Online (Sandbox Code Playgroud)

.env 文件未附加...