自从我更新了我的 composer.json
(我刚刚将 symfony
、 console
、 dotenv
、 framework-bundle
、 yaml
版本从 "5.0.*
切换到 "5.2.*
),我有此错误:
syntax error, unexpected '|', expecting variable (T_VARIABLE)
来自文件 vendor/psr/link/src/EvolvableLinkInterface.php
第 27 行.
(public function withHref(string|\Stringable $href);
)
我决定删除我的一个可选参数类型提示(例如 \Stringable
)并且效果很好。
我正在PHP 7.4.15
下运行.
你知道我该如何修复它吗?
最佳答案
看来是我们的好哥们https://github.com/php-fig使用 Union Type Hints 抢先一步仅适用于 php8。他们不提供对 php7 的支持。由于某种原因,他们从 php5 升级到 php8。您可以在 packagist 中看到这一点:
psr/link v1.0.0与 psr/link v1.1.0
也位于:
psr/log v1.1.4与 psr/log v2.0.0
这也会在依赖 psr/log 并运行 php7 的 Laravel 7 中引起问题。
您需要指定较旧的软件包版本:
Composer 需要 psr/link“1.0.*”
Composer 需要 psr/log "^1.0"
关于php - Symfony 5.2.3 接口(interface)类型提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66100477/