【问题标题】:Laravel PHP Version ErrorLaravel PHP 版本错误
【发布时间】:2016-01-21 18:32:05
【问题描述】:

我在使用 Laravel 5.1 版本时遇到了问题。我已经用 PHP 5.5.9 在 Ubuntu 平台上构建了它。然后我得到以下错误:

 PHP Parse error:  syntax error, unexpected 'class' (T_CLASS), expecting ')'

这些是返回错误的代码:

 <?php
 interface foo {
 }

 class class_with_method_that_declares_anonymous_class
 {
     public function method()
     {
         $o = new class { public function foo() {} };
         $o = new class{public function foo(){}};
         $o = new class extends stdClass {};
         $o = new class extends stdClass {};
         $o = new class implements foo {};
     }
 }

另一个:

 <?php
 class Test {
     public function methodOne() {
        $foo = new class {
            public function method_in_anonymous_class() {
                return true;
            }
        };

        return $foo->method_in_anonymous_class();
    }

    public function methodTwo() {
        return false;
    }
 }

我搜索了解决方案,然后我被告知了 Ubuntu 的 PHP 版本。之后,我将 PHP 版本从 5.5.9 更新到 5.6.17。但我仍然遇到同样的错误。这里有什么问题?

【问题讨论】:

  • 它可以是任意数量的东西,特别是因为它太大了。查看错误的其余部分(通常列出文件、行号)以查看它被调用的位置。或者你可以在 laravel 主目录的命令行上试试这个:find . -name \*.php -exec php -l "{}" \; | egrep -v 'No syntax'
  • 提供错误指定的代码可以帮助你,错误很模糊。
  • 好的,我添加了上面的代码。
  • @OnurGöker 你在使用匿名类吗?如果是,那么您需要将您的 PHP 版本升级到 PHP 7 。之后就可以使用上面的代码了..

标签: php class laravel laravel-5.1


【解决方案1】:

您不能在 PHP 中的类方法中声明类。

【讨论】:

  • 在 PHP 7 中添加了匿名类
  • 此代码中的用法自 PHP 5.5.X 起可用参见:php.net/manual/en/migration55.new-features.php
  • 我应该以安装该版本的 PHP 来结束我的句子。我的错,我想这对我来说会是一个更好的答案。
猜你喜欢
  • 2018-03-28
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
相关资源
最近更新 更多