【问题标题】:Laravel 5 : Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE)Laravel 5:解析错误:语法错误,意外'?',期望变量(T_VARIABLE)
【发布时间】:2018-07-25 00:28:26
【问题描述】:

在我的本地服务器上,一切都很好,就是使用 mailtrap 邮件服务器作为 smtp 服务器。但是当我的网站在实时服务器上并且当我尝试重置密码(忘记密码)时,附上了以下错误截图。我正在使用 hostgators cpanels 内置 smtp。 如果需要,我会提供更多详细信息。

【问题讨论】:

  • 您在旧版本上运行 PHP 7.1 代码
  • 那个问号在那里指定了一个可为空的类型。这是 PHP 7.1 中引入的功能。很可能您的服务器运行的是旧版本的 PHP。
  • @iainn 和 Niels 感谢您的评论。更改 php 版本解决了我的问题.. 但现在收到消息,我们已通过电子邮件将重置链接发送给您,但我没有收到任何邮件..我检查了所有 gmail 文件夹,包括垃圾邮件...但没有邮件

标签: php laravel smtp reset-password


【解决方案1】:

你需要安装 PHP 7.1 版本因为nullable types were introduced in 7.1:

?string $value

来自Laravel docs

您需要确保您的服务器满足以下要求:

PHP >= 7.1.3

【讨论】:

  • 更改 php 版本解决了我的问题 .. 但现在收到消息,我们已通过电子邮件将重置链接发送给您,但我没有收到任何邮件 ..我检查了所有 gmail 文件夹,包括垃圾邮件...但没有邮件
  • @kohali 这与问题无关。您应该接受答案并创建一个新答案。附上关于这个新问题的所有相关代码和信息。
  • @AlexeyMezenin 我在 laravel 5.5 上遇到同样的问题
  • 救命稻草。太感谢了。这个对我有用。经过 5 小时的研究
【解决方案2】:

仅适用于 php7.0

如果您的服务器没有 php 7.1 及以上版本并且您只能使用 php7.0 执行以下操作:

  1. 删除供应商文件夹
  2. 删除 composer.lock 文件
  3. 将此添加到config下的composer.json文件中

    "platform": {
       "php": "7.0.0"
    }
    

同时确保require 下的PHP 版本设置为7.0.0,如下图config.platform.php

    "config": {
        "platform": {
            "php": "7.0.0"
        }
     }
  1. 使用 CMD 运行 composer install

现在这将确保只安装与 php7.0 兼容的依赖项。

【讨论】:

  • 不起作用。我在命令行上有 Php 7.2,我想要 Php 7.0 代码库。
  • @AhmedNumaan 什么不完全有效?进行更改后您是否运行过composer install
  • 代码部署在无法安装 composer 的共享主机上。因此,我像您在我的 PC(Php 版本 7.2)上提到的那样运行了 composer 命令,然后将供应商目录上传到服务器。它没有用。
  • 在您的composer.json 中,已安装的依赖项是否仅与7.0 版本兼容?如果您可以验证,那么这可能是另一个问题,而不是 php 版本问题。
猜你喜欢
  • 2018-12-16
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
  • 2015-11-19
  • 2019-01-05
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
相关资源
最近更新 更多