当方法体存在时,“方法应该具有正文或者是抽象的”

时间:2018-03-02 17:17:51

标签: php

我有以下代码:

class PairGalleryController extends Controller
{
    /**
     * @Route("/PairGalleryIndex")
     */
    public function IndexAction()?    
    {
        $output = "";    
    }
}

...然而我在IDE中看到一个错误,说该方法“应该具有正文或者是抽象的”。

我确信我忽略了一个简单的解决方案。我错过了什么导致了这个问题?

====

编辑:有趣的是,当我在StackOverflow编辑表单上缩进代码时,此代码拒绝在预览中将其格式化为代码。所以也许有一个隐形字符会以某种方式导致解析问题。无论如何,这是我的猜测。我很乐意听到别人的想法。

2 个答案:

答案 0 :(得分:3)

您问题的具体答案

我从你的问题中复制的代码确实包含不可见的字符:

<u+2028>,unicode character&#39; LINE SEPARATOR&#39;:

class PairGalleryController extends Controller
{
    /**
    * @Route("/PairGalleryIndex")
    */
    public function IndexAction()<u+2028>
    {
        $output = "";<u+2028>
    }
}

尝试删除这些字符。

一般答案

因为我们发现这个问题是&#39;行分隔符范围内的隐形字符。或者&#39;零宽度空间&#39;,你可以在这里找到显示空格的可能性:

  1. phpStorm Zero Width Characters locator或:Settings -> Editor -> General -> Appearance -> Show whitespaces [source]
  2. TextMate View -> Show Invisible Characters
  3. SublimeText :在用户设置中:"draw_white_space": "all" [source]
  4. 注: 请随时更新并扩展此列表

答案 1 :(得分:0)

更改&#34;语言&#34;到PHP 7.1。您的版本设置得太低了。可以为空的IndexAction()?是一个从PHP 7.1开始的功能。