为啥我们在 PHP 中将一些变量声明为“$_variablename”...? [复制]

Posted

技术标签:

【中文标题】为啥我们在 PHP 中将一些变量声明为“$_variablename”...? [复制]【英文标题】:Why we declare some variables in PHP as like "$_variablename"...? [duplicate]为什么我们在 PHP 中将一些变量声明为“$_variablename”...? [复制] 【发布时间】:2013-04-09 06:32:59 【问题描述】:

为什么我们在 php 中将一些变量声明为 $_variablename

_ 是否定义了什么?

请帮我解决这个问题,谢谢。

【问题讨论】:

下划线没有固有的含义。这是个别开发者的命名偏好。 前导下划线通常用于私有属性和方法。当私有方法没有在 PHP 中实现时,这是 PHP 的旧做法 No _ 没有定义变量或函数私有,这是一个命名约定,只是为了提醒变量或函数是私有的 这不是重复的...链接的帖子是关于类方法的,而这个是针对变量的。这篇文章确认它是相同的变量约定。 【参考方案1】:

这是一个命名约定。

来自pear manual 关于命名约定:

私有类成员前面有一个下划线。例如:

$_status

【讨论】:

【参考方案2】:

下划线不代表变量是私有的。没有必要使用下划线。它只是一种命名约定,提醒开发人员变量/属性/方法是私有的还是受保护的

举例

// This variable is not available outside of the class  
private $_someVariable;  

class MyClass   
   // This method is only available from within this class, or  
   // any others that inherit from it.   
   protected function __myFunction()   
  

在上面的代码中,下划线并不是使变量或方法成为私有的原因; private/protected 关键字就是这样做的。

【讨论】:

【参考方案3】:

在您的代码中使用“_”或“__”不是强制性的,但它可以帮助您通过查看名称来理解变量/函数访问类型。

在一些 PHP 框架中你可能会看到:

_ for protected variable/function

__ for private variable/function

【讨论】:

【参考方案4】:

this主要用于声明全局变量和函数中..一般不强制使用'_'this

http://php.net/检查一下

【讨论】:

以上是关于为啥我们在 PHP 中将一些变量声明为“$_variablename”...? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在bash中取消设置变量检查

为啥不能在 Java 中将类声明为静态?

为啥在 JavaScript 中将全局变量添加到窗口对象?

为啥函数会声明“myVariable = myVariable;”?

为啥我没有在 php 中将此数字作为整数

为啥我们在 Scikit learn 中将 X_test 存储到 y_preds 变量中? [关闭]