array_shift() 期望参数 1 为数组

array_shift() expects parameter 1 to be array

我在共享主机中使用我的应用程序,它是在 laravel 中生成的。它给了我

PHP Warning: array_shift() expects parameter 1 to be array, null given in line 53

PHP Notice: Undefined index: argv in line 49

使用此代码:

class ArgvInput extends Input
{
    private $tokens;
    private $parsed;

    public function __construct(array $argv = null, InputDefinition $definition = null)
    {
        if (null === $argv) {
            $argv = $_SERVER['argv'];
        }

        // strip the application name
        array_shift($argv);

        $this->tokens = $argv;

        parent::__construct($definition);
    }

这可能意味着 $_SERVER['argv'] 变量也为空。我建议先检查一下,或者您可以这样做:

$argv = $argv ?? $_SERVER['argv'] ?? [];

这样你将始终有一个数组,即使没有输入,在这种情况下数组将为空,并且不会触发该错误