不能使用 'PhpParser\Node\Scalar\String' 作为 class 名称,因为它是保留的

Cannot use 'PhpParser\Node\Scalar\String' as class name as it is reserved

当我使用 composer 安装 Laravel 5 时出现此错误:

Cannot use 'PhpParser\Node\Scalar\String' as class name as it is reserved in /Applications/XAMPP/xamppfiles/htdocs/learnlaravel5/vendor/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php on line 86

Image of the error here

怎么了?

我假设您使用的是 PHP7,否则您不会收到此错误 (?)。

在 PHP7 中,String 现在与 some others. The PHP-Parser library used this keyword but was since fixed in April 2015 一起成为保留关键字。尝试升级 PHP-Parser 库,这应该会有所帮助。

按照@SamV的回答,这个问题可能会导致post-create-project-cmd不运行。因此,您将没有 .env 文件。为了弥补这一点,您可以 运行 从终端的项目文件夹中手动设置它们,如下所示。

cp .env.example .env
php artisan key:generate

您可以通过检查 composer.json 文件的脚本部分来了解 运行 实际上是什么脚本。

在php7中'String'是一个特殊的Class名字。 最好的解决方案是升级您的 Laravel 版本。 但是如果你需要使用旧版本,你可以将 String 替换为 String_

/vendor/psy/psysh/src/Psy/CodeCleaner/MagicConstantsPass.php

在第 19 行,你会发现两个 String ,只需将它们替换为 String_.