php - undefined variable : _ENV in Laravel 5. 3

标签 php laravel laravel-5 environment-variables vendor

我正在使用 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:clearphp 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/

相关文章:

php - laravel Eloquent 一对多关系返回null

php - Laravel where - 如何使用条件引用相同的模式?

php - 带有动态参数的 Laravel 5 全局作用域

php mysql select,数组结果内部数组结果

php - 是否可以使用 PHP 异步发送邮件,同时向用户提供投递反馈?

javascript - 在 Ajax Woocommerce 添加到购物车验证上显示甜蜜警报

php - PDO 准备好的语句中的 foreach

php - 如何在 Laravel 架构构建器中制作 [anyType] 数组?

javascript - Pubnub 一对一聊天向所有用户发送消息

laravel - 动态更改 Auth 的模型