我正在使用 Laravel 5.3 测试我的系统:
在过去的几周里,我的系统运行良好。自上周末以来,我遇到了如下相同的错误 TWICE:-
Notice: Undefined variable: _ENV in C:\NewFolder\htdocs\project\vendor\vlucas\phpdotenv\src\Loader.php on line 303
Warning: array_key_exists() expects parameter 2 to be array, null given in C:\NewFolder\htdocs\project\vendor\vlucas\phpdotenv\src\Loader.php on line 303
Loader.php:
public function getEnvironmentVariable($name)
{
switch (true) {
case array_key_exists($name, $_ENV): // line 303 here
return $_ENV[$name];
case array_key_exists($name, $_SERVER):
return $_SERVER[$name];
default:
$value = getenv($name);
return $value === false ? null : $value;
}
}
.env
APP_ENV=local
APP_KEY=base64:oTU0Ok1mmE6x0qEosGKhCSxpQLAlBAnNreH7sFAKkdM=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=new_db
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_APP_ID=
- 当第一次出现上述错误时(加载登录页面时),我清除了浏览器缓存和历史记录,系统设法恢复正常。
- 当第二次出现同样的错误时(在测试过程中),我和第一次一样,清除了浏览器缓存和历史记录,但无济于事,刷新浏览器后错误仍然存在。所以我执行了
php artisan view:clear
和php artisan cache:clear
还是没能恢复正常。
有人知道为什么会这样吗?谢谢
我使用的版本:
- 操作系统:Windows 7
- 浏览器:火狐浏览器
- PHP:7.1.1
- Laravel:5.3
最佳答案
$_ENV
的唯一原因如果它已从 variables_order
中删除,则不应定义超全局配置。
检查您的 php.ini
variables_order
的(或任何其他相关配置文件)属性(property)。对于 $_ENV
要设置,它必须包含一个“E”。默认设置是
variables_order = "EGPCS"
如果您在查找配置时遇到问题,<?php phpinfo() ?>
dump 还应该显示值和配置文件位置。
variables_order
是 PHP_INI_PERDIR
模式设置,意义...
Entry can be set in php.ini, .htaccess, httpd.conf or .user.ini (since PHP 5.3)
字符代表
- E -
$_ENV
- G -
$_GET
- P -
$_POST
- C -
$_COOKIE
- S -
$_SERVER
关于php - undefined variable : _ENV in Laravel 5. 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48555791/