当前位置: 首页 > 面试题库 >

PHP类方法中的下划线会如何处理?

尹庆
2023-03-14
问题内容

在查看各种PHP库时,我注意到许多人选择在某些类方法的前面加一个下划线,例如

public function _foo()

…代替…

public function foo()

我意识到这最终归结于个人喜好,但我想知道是否有人对这种习惯的来历有所了解。

我的想法是,它可能是从PHP
4继承过来的,然后才可以将类方法标记为protected或private,以暗示“不要从类外部调用此方法”。但是,我也想到,它可能起源于我不熟悉的某个地方(一种语言),或者背后有很好的理由让我从了解中受益。

任何想法,见解和/或意见将不胜感激。


问题答案:

它来自于面向对象的PHP(PHP
4)的糟糕年代。OO的实现非常糟糕,并且不包括私有方法之类的东西。为了弥补这一点,PHP开发人员在方法的开头加了下划线,这些方法原本是私有的。在一些较旧的课程中,您会发现/**private*/ __foo() {它会增加一些重量。

我从未听说过开发人员在所有方法前都加下划线,因此我无法开始解释造成这种情况的原因。



 类似资料:
  • 如何处理p标签中的下划线。这是我正在工作的代码。有人能帮我克服这个问题吗? 输入XML和XSLT代码:https://xsltfiddle.liberty-development.net/a9HjZX/1 输入XML: 预期输出: XSLT代码:

  • 问题内容: 这些PHP代码行中的双下划线是什么意思? 问题答案: 看起来您正在使用Wordpress- 将__定义为转换字符串的函数(类似于及其别名,但具有用于显式指定域的可选参数)。

  • 如何隐藏EditText下划线(末尾有衬线的提示线)? 可能有一个更好的方法来实现我想要的:我有一个带有EditText的布局。通常情况下,在用户可以点击它并开始输入或编辑文本的地方显示良好。 然而,有时我希望使用相同的布局(简化其他逻辑)以只读方式显示相同的数据。我希望演示文稿是相似的--它应该有相同的高度和相同的字体,但没有下划线。 作为权宜之计,我将通过删除EditText并替换TextVi

  • 我正在使用水平线性布局来并排显示一个图像和一个文本字段: 我在线性布局中添加了一个底部下划线,这样图像和文本字段都在一起下划线。我现在需要做的是从“编辑”文本框中删除下划线: 此图像显示,当取消聚焦时,编辑文本下划线仍然存在, 并且他的图像显示编辑文本下划线在聚焦时仍然存在。 我在so:here和here上使用了每个示例中的xml代码,但没有用。将android:background更改为@nul

  • 我的Android Studio(2.3.3)编辑器不会为eclipse之类的错误加下划线。你可以很容易地看到所有的错误,而无需在滚动条上逐个检查每个标签是否有错误。 有人知道这个问题吗?

  • >>> class MyClass(): ... def __init__(self): ... self.__superprivate = "Hello" ... self._semiprivate = ", world!" ... >>> mc = MyClass() >>> print mc.__superprivate Traceback (most recen