2016-01-21 63 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