为什么下划线(_)用于php codeigniter中的函数_save_cart等函数?

时间:2016-02-09 03:00:34

标签: php codeigniter

我看到许多教程下划线(_)用于函数。

但我不知道为什么使用它以及如何使用?

像这样:

function _save_cart()
{

}

4 个答案:

答案 0 :(得分:1)

根据Codeigniter documentation

  

用下划线给方法名称加上前缀也可以防止调用它们。这是一个向后兼容的旧功能。

在需要帮助程序类型的函数在代码中公开访问(例如用于验证,但不能从浏览器访问)的情况下,我使用了它。

答案 1 :(得分:0)

下划线是PHP函数名中完全有效的字符,您可以像使用任何其他函数一样使用它们。

通常,以下划线开头的函数意味着该函数具有隐藏的可见性。 Here是WordPress源代码的一个示例。

同时,下划线可能只是用来减少命名冲突的可能性,或者只是因为作者认为它更美观。 Here是WordPress的另一个例子(一个意图公开使用的函数):

正如评论中所提到的,有关方法的另一个答案。功能和方法面前的下划线被认为是不好的做法。有关详细信息,请参阅PSR-2 Coding Style Guide

答案 2 :(得分:0)

在目标语言中,函数和变量名称与大写字符分隔,例如:saveCart(),getCart(),...

但是在功能语言中,人们使用下划线,我认为它来自C posix标准/符号。

C语言不支持私有和受保护的关键字,因此人们通常使用一个或两个下划线作为预扩展,以使该功能成为私有或受保护。

Php在很长一段时间ZEND添加了面向对象的功能后,首先被创建为一种函数式语言。很多人过去常常把它写成函数式语言。因此,如果您看到像_save_cart这样的函数,您可以理解:旧的学校php编码器使用posix方式保护或私有此功能。

答案 3 :(得分:0)

有4种命名约定:

  1. with_underscores
  2. PascalCased (首字母为大写字母,第二个字为大写字母/ Pascal + Cased / ContactUs
  3. camelCased (第一个字母是小型大写,第二个是大写/ cammel + Casesd / contactUs
  4. lower_case (所有字母均为小型大写/ contact_us
  5.   

    但在CI中我们使用 PascalCased lower_case

    在Codeigniter中

    ---------------------------------
    | Classes       |   PascalCased |
    | Methods       |   lower_case  |
    | Properties    |   lower_case  |
    | Functions     |   lower_case  |
    | Variables     |   lower_case  | 
    ---------------------------------
    

    阅读本文

    1. Codeigniter Variable Names
    2. PSR-2: Coding Style Guide