我知道很多人对这种细节不以为然,之前网上搜过一堆这类问题,答案通常是你高兴就好。但是团队合作中,这类问题导致的BUG确实不少。
PSR-1相关规范是这么说的:
类的属性命名可以遵循 大写开头的驼峰式 ($StudlyCaps)、小写开头的驼峰式 ($camelCase) 又或者是 下划线分隔式 ($under_score),本规范不做强制要求,但无论遵循哪种命名方式,都应该在一定的范围内保持一致。这个范围可以是整个团队、整个包、整个类或整个方法。
可大家的想法不一致,真的很难强行要求别人按自己的想法去写。
比如mysql字段中是user_name,那么PHP中写成$userName是否合适?网页间GET方式传递参数呢?有哪个规范有这方面的规定没?
如果php中已有字段的变量与MYSQL统一写成$user_name,那么没有字段的变量如何处理?比如根据身份证号推算出该用户是青年人,应该写成$is_young还是$isYoung合适呢?
比如下段这几段代码,你赞成哪一组呢?
第一种:属性和传参一律采用驼峰
$userName=$_GET['userName']?$_GET['userName']:'';
if($isYoung){
$data=['user_name'=>$userName];
$db->insert($data,$table);
}
第二种:属性采用驼峰,传参与mysql一致
$userName=$_GET['user_name']?$_GET['user_name']:'';
if($isYoung){
$data=['user_name'=>$userName];
$db->insert($data,$table);
}
第三种:干脆全部属性都采用下划线算了
$user_name=$_GET['user_name']?$_GET['user_name']:'';
if($is_young){
$data=['user_name'=>$user_name];
$db->insert($data,$table);
}
第四种:数据库有对应字段的就用下划线,没有的就用驼峰
$user_name=$_GET['user_name']?$_GET['user_name']:'';
if($isYoung){
$data=['user_name'=>$user_name];
$db->insert($data,$table);
}
请问大家日常用的是哪种呢?
PSR 这玩意 他只是个参考。
那么什么才是标准,这个肯定没有定论。
相对的就是取决于你们的团队是怎么写的,合理且大家易接受的,即可,团队至上,而不是标准至上。