2016-01-21 64 views
0

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

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。但是我仍然得到相同的错误。这里有什么问题?

+1

它可以是任何数量的东西,尤其是因为它太大了。查看错误的其余部分(通常列出文件,行号)以查看它在哪里被调用。或者你可以在主laravel目录的命令行上试试这个:find。 -name \ *。php -exec php -l“{}”\; | egrep -v'没有语法' – aynber

+0

提供错误指定可以帮助你的代码段,错误是模糊的。 –

+0

好的我添加了上面的代码。 –

回答

-1

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

+2

PHP中添加了匿名类7 – lagbox

+0

此代码中的用法自PHP 5.5.X起可用。请参阅:http://php.net/manual/en/migration55.new-features .php –

+0

我应该用_having该版本的PHP installed_结束我的判决。我的错,我想这应该是我的一个更好的答案。 – subzeta