鍍金池/ 問答/PHP/ php7 PHP Fatal error: Cannot use 'Strin

php7 PHP Fatal error: Cannot use 'String' as class name

因?yàn)樯?jí)PHP7,想檢測(cè)不兼容的代碼,使用了工具php7cc
php7cc --level=error vendor>error.txt

File: /vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Object.php
> Line 7: [Error] Name "object" that is reserved for future use (does not cause an error in PHP 7) used as a class, interface or trait name
    class Object extends \PhpParser\Node\Expr\Cast
    {
    }


File: /vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Bool.php
> Line 7: [Error] Reserved name "bool" used as a class, interface or trait name 
    class Bool extends \PhpParser\Node\Expr\Cast
    {
    }


File: /vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/String.php
> Line 7: [Error] Reserved name "string" used as a class, interface or trait name 
    class String extends \PhpParser\Node\Expr\Cast
    {
    }


File: /vendor/nikic/php-parser/lib/PhpParser/Node/Expr/Cast/Int.php
> Line 7: [Error] Reserved name "int" used as a class, interface or trait name 
    class Int extends \PhpParser\Node\Expr\Cast
    {
    }


File: /vendor/nikic/php-parser/lib/PhpParser/Node/Scalar/String.php
> Line 10: [Error] Reserved name "string" used as a class, interface or trait name 
    class String extends \PhpParser\Node\Scalar
    {
    }


File: /vendor/phpunit/phpunit/tests/_files/Error.php
> Line 2: [Error] Class/trait/interface "Error" was added in the global namespace
    class Error extends \PHPUnit_Framework_TestCase
    {
    }


File: /vendor/classpreloader/classpreloader/src/Parser/DirVisitor.php
> Line 8: [Error] Reserved name "string" used as a use statement alias 
    PhpParser\Node\Scalar\String


File: /vendor/classpreloader/classpreloader/src/Parser/FileVisitor.php
> Line 8: [Error] Reserved name "string" used as a use statement alias 
    PhpParser\Node\Scalar\String

文檔也指出無效的類、接口以及 trait 命名

這些代碼都在vendor下,沒法直接修改吧,該如何處理好呢?

回答
編輯回答
話寡

哪個(gè)地方使用到了,直接繼承重寫可不可以?我記得我用yii2的時(shí)候也是有個(gè)包是這樣的。

2018年8月8日 13:48
編輯回答
孤島

我看了一下,應(yīng)該是你這個(gè)Parser工具使用了PHP7的關(guān)鍵字或者是PHP的保留字來做類名,然后出錯(cuò)了。你這個(gè)vendor下的工具我沒用過,不過作為PHP,你想改并不是不可以。

2017年4月30日 02:19