【问题标题】:Parse error: syntax error, unexpected '?' in /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233 - laravel解析错误:语法错误,意外的“?”在 /vendor/laravel/framework/src/Illuminate/Foundation/helpers.php 第 233 行 - laravel
【发布时间】:2018-05-13 12:12:13
【问题描述】:

我有一个在 php 7 上运行的子域文件夹。在全球范围内,我的 php 版本实际上是 5.6。当我运行我的项目时,我得到一个 500 内部错误。检查我的error_log,我看到了这个错误

致命错误:在第 358 行的 /home/invoice/vendor/symfony/polyfill-mbstring/Mbstring.php 中调用未定义函数 Symfony\Polyfill\Mbstring\iconv_strpos()

我尝试在我的子文件夹(在 php 7 上运行的子域下)安装此命令 composer require symfony/polyfill-icon,但这是终端中的结果

Warning: Ambiguous class resolution, "App\Http\Controllers\Auth\RegisterController" was found in both "/home/laravel/public_html/myproject/app/Http/Controllers/mNotify/Auth/RegisterController.php" and "/home/laravel/public_html/myproject/app/Http/Controllers/Auth/RegisterController.php", the first will be used.
> Illuminate\Foundation\ComposerScripts::postAutoloadDump

Parse error: syntax error, unexpected '?' in /home/laravel/public_html/myproject/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233

当我在子域下的子文件夹中查看vendor file 时, Symfony\Polyfill\Mbstring\iconv 安装在那里,但是当我使用 php --ir iconv 从终端进行测试时,它得到 Extension iconv is not present

发生了什么?

【问题讨论】:

  • 您的 PHP 缺少 iconv 扩展名。修复它首先取决于您的 PHP 是如何安装的。
  • @ceejayoz 但我认为我可以使用此命令修复composer require symfony/polyfill-icon
  • 至于你的解析错误,那是因为你在 PHP 5 中运行 PHP 7 代码。(第 233 行说 ...$arguments[1] ?? null?? 不在 PHP
  • @cHao,是的,这就是为什么我在子域中将 php 版本更新为 7,但后来我不知道为什么它仍然出现该错误。无论如何,Composer 都是全局安装的。难道是因为这样,composer使用的是php 5(这是全球版本)
  • @LearnLaravel:可能是。如果您只是说composer do something,它将在shebang 行中列出的解释器下运行。你可以改成name_of_php7 $(which composer) do something

标签: php laravel symfony


【解决方案1】:

检查 mod php

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2018-08-14
    • 1970-01-01
    • 2021-01-13
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多