V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hbolive
V2EX  ›  PHP

PHP 中变量的命名,你们是用驼峰法还是下划线?

  •  
  •   hbolive · 2019-07-27 10:25:46 +08:00 · 9536 次点击
    这是一个创建于 1939 天前的主题,其中的信息可能已经有所发展或是发生改变。
    翻了翻资料,貌似驼峰法是对的,可能我接触 PHP 比较早,一直都习惯用下划线的方式,比如:$user_id,看来为了规范要改一下了。。
    35 条回复    2019-08-02 14:57:41 +08:00
    jowan
        1
    jowan  
       2019-07-27 10:31:59 +08:00
    https://www.php-fig.org/psr/psr-1/

    4.2. Properties
    This guide intentionally avoids any recommendation regarding the use of $StudlyCaps, $camelCase, or $under_score property names.


    不要乱下结论啊 现在一般遵循 PSR
    变量及属性是没有强制要求的
    但是不管用哪种 全局要统一就行了
    way2create
        2
    way2create  
       2019-07-27 10:40:26 +08:00
    This guide intentionally avoids any recommendation regarding the use of $StudlyCaps, $camelCase, or $under_score property names.

    Whatever naming convention is used SHOULD be applied consistently within a reasonable scope. That scope may be vendor-level, package-level, class-level, or method-level.
    ben1024
        3
    ben1024  
       2019-07-27 10:42:15 +08:00
    PSR 没约束,习惯变量蛇形下划线方便区分
    xubeiyan
        4
    xubeiyan  
       2019-07-27 10:46:02 +08:00 via Android   ❤️ 1
    我都是今天写用驼峰明天写用下划线(死
    mamahaha
        5
    mamahaha  
       2019-07-27 10:52:34 +08:00
    马大哈用下划线。心细用驼峰法。
    shench
        6
    shench  
       2019-07-27 10:55:32 +08:00
    我一般 变量用下划、对象用驼峰、函数用下划、方法用驼峰、类名用驼峰首字大写的那种。
    akira
        7
    akira  
       2019-07-27 10:55:40 +08:00
    下划线,全小写,
    www6688w
        8
    www6688w  
       2019-07-27 10:59:23 +08:00
    变量名一般用驼峰,数据库表名就用小写+下划线
    iyaozhen
        9
    iyaozhen  
       2019-07-27 11:58:48 +08:00
    公司规定 变量小驼峰、方法名小驼峰、函数名下划线
    xuanwu
        10
    xuanwu  
       2019-07-27 12:09:23 +08:00 via iPhone
    可以用中文命名,不用纠结
    Youngxj
        11
    Youngxj  
       2019-07-27 12:11:54 +08:00
    我 abc 变量
    jiangwei2222
        12
    jiangwei2222  
       2019-07-27 12:14:24 +08:00   ❤️ 2
    这得看我心情
    lscho
        13
    lscho  
       2019-07-27 12:33:01 +08:00 via Android
    变量名,方法名驼峰,数据表字段下划线,
    ddup
        14
    ddup  
       2019-07-27 12:39:03 +08:00
    我。。。。看到有的库下划线,有的驼峰,官方都是下划线。
    abdiweli
        15
    abdiweli  
       2019-07-27 13:03:24 +08:00
    我是两种都用,但项目是驼峰方式开始写的,那就坚持用驼峰方式,用下划线方式开始的,就坚持用下划线方式。如果要修改别人的项目,那就遵循人家的命名规则。
    icerhe
        16
    icerhe  
       2019-07-27 13:15:14 +08:00
    在项目中风格统一即可.我个人因为用惯了 java,所以喜欢驼峰,甚至写 python 也总想全驼峰
    Egfly
        17
    Egfly  
       2019-07-27 13:39:45 +08:00
    除了数据库下划线,其他全驼峰
    hbolive
        18
    hbolive  
    OP
       2019-07-27 13:53:23 +08:00
    @ddup 早期的 PHP 的确是下划线,我也是养成了这个习惯,后来在项目组看到有同时用驼峰,我又去翻了下鸟哥和 TP 的代码,发现他们都是用的驼峰,所以我才想是不是要统一为驼峰了?
    hbolive
        19
    hbolive  
    OP
       2019-07-27 13:54:25 +08:00
    @shench 跟我一样。。
    7gugu
        20
    7gugu  
       2019-07-27 13:55:24 +08:00
    个人项目下划线,团队项目用驼峰(个人习惯而已)
    xnode
        21
    xnode  
       2019-07-27 13:55:32 +08:00
    数据库下划线,orm 下划线 方法名 小驼峰,函数 小驼峰
    loginbygoogle
        22
    loginbygoogle  
       2019-07-27 13:58:33 +08:00
    讨厌下划线命名法
    ibugeek
        23
    ibugeek  
       2019-07-27 14:18:59 +08:00
    变量名,方法名驼峰,数据表字段下划线,
    vincel
        24
    vincel  
       2019-07-27 14:33:56 +08:00 via iPhone
    c 语言 php 还是老老实实用下划线吧
    lcy630409
        25
    lcy630409  
       2019-07-27 16:01:43 +08:00
    用下划线,包括数据库表名
    你是没有遇到过 一个项目中驼峰各种不规范的写,然后从 windows server 切换到 linux 时候的那种感觉
    一会儿这个变量找不到,比如 UserName 有的写 Username
    一会儿数据库表找不到,比如数据库表名 UserName 在 tp 里 UserName 相当于 User_name
    各种问题,所以项目里统一建议用下划线,
    UserName=Username(Win)
    UserName≠Username(Linux)
    dutianze
        26
    dutianze  
       2019-07-27 16:27:58 +08:00
    snaking_CamelKebab-case
    jinzhe
        27
    jinzhe  
       2019-07-27 17:12:50 +08:00
    php 下划线更舒服

    js 用小驼峰

    css 用 xxx-xxx
    dvaknheo
        28
    dvaknheo  
       2019-07-27 17:23:00 +08:00
    一般用驼峰。

    下划线公开方法用于不推荐但不得不公开的方法, 如回调。

    下划线公开成员用于来自配置的变量,配置里用下划线。
    mostkia
        29
    mostkia  
       2019-07-27 17:38:18 +08:00
    一般驼峰,下划线看着总有一些奇怪,不过很多 php 内置的函数方法也是下划线的就是了。
    bravist
        30
    bravist  
       2019-07-27 19:09:46 +08:00
    定义都是自己的, 写出来的东西更多是给别人看的, 推荐使用 PSR 规范,保持风格统一,PSR 的初衷不就是你这个问题演变而来的吗
    welling
        31
    welling  
       2019-07-27 20:24:59 +08:00
    php 用驼峰,数据库字段用下划线,css 用 -
    charlie21
        32
    charlie21  
       2019-07-28 09:23:27 +08:00
    OOP PHP 用驼峰
    Procedural PHP 用 下划线

    这是两种范式的区别

    en.wikipedia.org/wiki/Procedural_programming

    C 语言就是典型的 Procedural programming,去看看 linux 内核的变量是下划线
    github.com/torvalds/linux/blob/master/include/crypto/sha256_base.h

    学明白阿,少年,变量名要和编程范式对应。这和 PHP 无关 也和什么具体的语言无关,这是编程范式的管理。如果我用 C 语言走 OOP 范式那么也是用驼峰的

    范式混合,参考 C++ 这个包含了若干范式的语言
    /t/586363#r_7675669
    www.zhihu.com/question/19794858/answer/18448868 轮子哥用 C++
    具体变量怎么用,对应一个项目的范式。当然如果你没听说过 procedural 那就是另一回事了,你感觉不出来这个 feel
    hbolive
        33
    hbolive  
    OP
       2019-07-29 11:49:24 +08:00
    @charlie21 我用 PHP 的时候,还没有 OOP PHP,所以这也是我主题里“可能我接触 PHP 比较早”这句话的意思,也是我习惯用下划线的意思。你文中,图文并茂,说得很详细,东叔很高兴,你可以批评我没有与时俱进,但是说我没听说过 procedural,东叔就不爱听了。。
    charlie21
        34
    charlie21  
       2019-07-29 15:40:03 +08:00
    @hbolive 原来是东叔 失敬失敬
    Evilk
        35
    Evilk  
       2019-08-02 14:57:41 +08:00
    我更喜欢驼峰
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2728 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:25 · PVG 20:25 · LAX 04:25 · JFK 07:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.