PHP #region用于代码折叠?

mat*_*wen 43 php

在PHP中是否存在c#的#region等效项?

krt*_*tek 55

不,语言中没有任何内容.

但是每个体面的编辑都允许某种标记来实现这一点.

例如在Netbeans中:

// <editor-fold defaultstate="collapsed" desc="user-description">
  ...any code...
// </editor-fold>
Run Code Online (Sandbox Code Playgroud)

此语法也适用于所有Intellij IDEA编辑器系列,请参阅http://blog.jetbrains.com/webide/2012/03/new-in-4-0-custom-code-folding-regions/

您还可以通过插件模拟Eclipse中的功能:Eclipse的代码折叠插件?

  • 您可以编写`fcom`并按tab键以编辑折叠插入代码模板. (8认同)

Lig*_*ica 32

没有.

问题是,C#只是由一个IDE编写,因为Microsoft需要你总是使用他们的工具.因此,内置于语言(某种程度)是影响IDE的事物.

另一方面,PHP 只是一种语言.它不应该与某个特定的编辑器有共生关系,所以它没有.所以,不,它没有任何东西可以控制你的编辑器.

尽管如此,所有正确的编程文本编辑器都支持折叠类定义,函数定义和大多数范围块.有些编辑可能允许某些扩展超出此范围.

  • 如果PHP有#region,那么所有的php编辑都可以利用它来使开发更容易.#region真的很棒,因为在任何时候你都可以专注于你直接工作的东西,并隐藏所有其他部分. (21认同)
  • 您可以使用任何其他语言在C#中编写任何文本编辑器.你不必使用Visual Studio,无论如何写在记事本中是非常低效的. (11认同)
  • 好吧,你的答案是正确的,但PHP*可以*做的是忽略`#region`代码行,让IDE实现(或不实现)代码折叠. (3认同)
  • @Kamil:当然,但是`#Region`在"任何文本编辑器"中都没有做任何事情.然后,它仍然具有其语义含义. (2认同)
  • Notepad ++还可以识别并折叠PHP文件中的“ #region”。 (2认同)
  • 这个答案是非常有偏见和不正确的。# 是 PHP 中的注释。# 后面的内容与解释器无关。krtek 的答案应该是公认的答案,尽管它可能包括在 C# 中 # 是一个预处理器指令,因此虽然内部工作方式不同,但如果编辑器支持“#region”,则结果是相同的。 (2认同)

sla*_*der 16

正如大家之前所说的,.Net中的#region实际上是一个Visual Studio功能,而不是C#,但C#语法支持语法的事实允许任何想要实现它的IDE使用它.因为在PHP中,'#'字符也用于注释,IDE也可以这样做.事实上,JetBrains的PhpStorm就是这样做的:https://blog.jetbrains.com/phpstorm/2012/03/new-in-4-0-custom-code-folding-regions/

  • 只是为了让 ppl 稍后阅读:#region 与 php 和 notepad++、折叠和所有东西一起工作得很好。 (3认同)

小智 9

没有等价物(其他答案解释了原因),但是让我告诉你我是如何做到的:

//////////////////////////
/* REGION A */ {

    function SomeFunction() {
        return true;
    }

    function AnotherFunction() {
        return false;
    }

}

//////////////////////////
/* REGION B */ {

    function ThirdFunction() {
        return true;
    }

    function FourthFunction() {
        return false;
    }

}
Run Code Online (Sandbox Code Playgroud)

花括号允许我折叠代码块(你的编辑器需要支持冷折叠,但几乎所有代码都支持),而我仍然看到区域名称并有一个简单的可视分隔符.

折叠结果:

//////////////////////////
/* REGION A */ { 

//////////////////////////
/* REGION B */ { 
Run Code Online (Sandbox Code Playgroud)

  • 但这可惜在课堂上不起作用 (2认同)

Dar*_*son 7

PhpStorm支持类似于C#的代码折叠:

#region [comment about what the code does]

code....

#endregion
Run Code Online (Sandbox Code Playgroud)


小智 6

如果你使用notepad ++,你可以在用户定义的语言对话框中使用ide定义那种东西,并且因为好的旧区域以井号开头,所以它很有效,因为井"#"实际上是在php中标记的一种方式评论.但是,我在版本6.6.6的notepad ++中尝试过,它已经有#region #endregion功能,已经无需做任何事情了.