【问题标题】:Parse error: Invalid numeric literal after upgrade to laravel 5.2解析错误:升级到 laravel 5.2 后数字文字无效
【发布时间】:2016-09-10 04:38:09
【问题描述】:

我只是将 laravel 5.1 升级到 5.2。除了我的播种机,一切都运行顺利。

当我运行播种机时,我发现了这个错误:

admin@arrasyid:/var/www/sys_pb$ php artisan db:seed


  [Symfony\Component\Debug\Exception\FatalThrowableError]  
  Parse error: Invalid numeric literal                     

我在谷歌上搜索错误后找不到解决方案。请给我一个与此相关的建议。谢谢

【问题讨论】:

  • 你试过composer dump-autoload 吗?
  • 能否提供完整的异常回溯以及导致它的相关代码?
  • @Follio,我也试过了。但没有运气
  • @Sherif,这是 laravel 在遇到错误时给出的异常。

标签: php laravel-5.2 php-7


【解决方案1】:

来自手册中的 PHP 7 迁移指南

无效的八进制文字

以前,包含无效数字的八进制文字会被静默截断(0128 被视为012)。现在,无效的八进制文字将导致解析错误

Changes to integer handling

所以这意味着从 PHP 7 开始,您的代码中的类似内容可能会导致 Invalid numeric literal 出现致命的解析错误,而之前在 PHP 5 中它会被忽略。

$arr = [08, 09, 10, 11]; // works in PHP 5, throws fatal error in PHP 7

this 3v4l 为例。

【讨论】:

  • 我已经尝试对所有与数据播种器相关的功能进行设置。但它仍然失败并出现同样的错误。我该如何解决这个问题?和symfony有关系吗?
  • 如果它是Throwable 类型,很可能它来自 PHP。 PHP 7 中的这个特定例外是关于在您的 php 代码中使用无效的数字文字。请参阅答案中的示例。
  • 这个解决方案对刚踢出去的项目有好处,也就是说,当项目很小的时候,可以改变它。但是当源代码复杂时,可能需要很长时间来维护或至少一一检查。
  • @indi60 这个答案的哪一部分修复了您的错误,因为您接受了它?我遇到了完全相同的错误,不知道这是如何解决问题的。我也没有升级我的 PHP 版本(我使用的是 7,但它之前已经工作过)。
【解决方案2】:

我有同样的错误“解析错误:无效的数字文字”。对我来说,只需在数字中加上单引号即可。 像这样: $arr = ['08', '09', '10', '11']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-05
    • 2020-08-26
    • 2016-03-31
    • 2017-02-04
    • 2019-01-04
    • 2018-03-19
    • 1970-01-01
    相关资源
    最近更新 更多