Php &引用;方法应该有正文或是抽象的;当存在方法体时

Php &引用;方法应该有正文或是抽象的;当存在方法体时,php,Php,我有以下代码: class PairGalleryController extends Controller { /** * @Route("/PairGalleryIndex") */ public function IndexAction()? { $output = ""; } } 。。。然而,我在IDE中看到一个错误,即该方法“要么应该有主体,要么应该是抽象的” 我肯定我忽略了一个简单的解决方案。我遗漏

我有以下代码:

class PairGalleryController extends Controller
{
    /**
     * @Route("/PairGalleryIndex")
     */
    public function IndexAction()?    
    {
        $output = "";    
    }
}
。。。然而,我在IDE中看到一个错误,即该方法“要么应该有主体,要么应该是抽象的”

我肯定我忽略了一个简单的解决方案。我遗漏了什么导致了这个问题

====

编辑:有趣的是,当我在StackOverflow编辑表单上缩进代码时,该代码拒绝在预览中格式化为代码。所以可能有一个不可见的字符在某种程度上导致了解析问题。无论如何,这是我的猜测。我很想听听其他人的想法。

将“语言”更改为PHP7.1。您设置的版本太低。可为空的
IndexAction()?
是从PHP7.1开始的一个特性。

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

,unicode字符“行分隔符”:

class PairGalleryController extends Controller
{
    /**
    * @Route("/PairGalleryIndex")
    */
    public function IndexAction()<u+2028>
    {
        $output = "";<u+2028>
    }
}
类PairGalleryController扩展控制器
{
/**
*@Route(“/PairGalleryIndex”)
*/
公共函数索引()
{
$output=“”;
}
}
尝试删除这些字符

一般答复 由于我们发现问题是“行分隔符”或“零宽度空间”范围内的不可见字符,因此您可以在此处找到显示空白的可能性:

  • phpStorm:或:
    设置->编辑器->常规->外观->显示空白
  • TextMate
    查看->显示不可见字符
  • 升华文本:在用户设置中:
    “绘制空白”:“全部”

  • 注意:请随时更新和扩展此列表

    哪个IDE?你为什么要烦恼?它是否编译并运行???Hi RiggsFolly。这是PHPStorm。代码未编译--我收到一条投诉,说在包含我的函数签名的行中出现了意外的“”(T_字符串)。在
    $output=”“之后有一个不可靠的字符在一个简单的编辑器中,它显示为
    $output=“”
    还有这里的
    函数IndexAction()?
    为什么这里有一个问号?