2011-05-28 200 views
3

可能重复:
What's the deal with a leading underscore in PHP class methods?在php中函数意味着什么?

我认为这是很好地说明了...这是什么意思,如果你看到一个函数开始在PHP中的下划线?我已经看过很多次了,但我仍然不知道它是什么!它仍然有效,但从底线开始看起来很奇怪,我怀疑这只是一个惯例,但我不知道它是什么。我不是在谈论双重下划线函数(即__construct()),而是一个下划线。

我最好的猜测是它意味着它是你自己独特的功能,你希望别人知道吗?

+0

哎呀,我想stackoverflow会让我有最后的发言在关闭这个,因为重复很多回答我的问题。 :/我刚刚关闭了......还需要一个。 – netrox 2011-05-28 04:48:18

+0

这一切都很好,你可以接受一个答案。我相信在将来收集足够多的选票时(或不会),这一点可以在将来合并。无论哪种方式,它仍然是有用的,这些答案是正确的。这里有另一个:[关于PHP下划线的命名约定(如“_method”或“_property”)](http://stackoverflow.com/q/5766138) – 2011-05-28 04:51:04

回答

9

就语言本身而言,没有任何意义,但单下划线前缀通常用于表示“私人”或“隐藏”类成员。

有时您会看到下划线前缀为所有privateprotected成员,只是为了让它更明显,它们不是公开可用的。其他时候,无论访问级别如何,下划线都可以表示“内部”功能,可以在技术上使用,但不鼓励使用该功能。

4

一般来说,程序员在函数中使用前导下划线来表示这是一个内部函数(不是意味着从外部调用),如果可能的话,它们会使它变为私有的。

它只是一种做法。一般来说,允许函数名称以下划线开头的编程语言不会以任何方式将它们与其他函数区别开来。即使一种语言允许你明确地将一个功能私人化,人们仍然可以习惯性地使用这种惯例。