驼峰命名和下划线命名互转php实现
驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.
第一种方法效率相对差一些,实现方式如下:
//驼峰命名转下划线命名
function toUnderScore($str)
{
$dstr = preg_replace_callback('/([A-Z]+)/',function($matchs)
{
return '_'.strtolower($matchs[0]);
},$str);
return trim(preg_replace('/_{2,}/','_',$dstr),'_');
} //下划线命名到驼峰命名
function toCamelCase($str)
{
$array = explode('_', $str);
$result = $array[0];
$len=count($array);
if($len>1)
{
for($i=1;$i<$len;$i++)
{
$result.= ucfirst($array[$i]);
}
}
return $result;
}
第二种方法更为巧妙高效,推荐使用第二种方法
/**
* 下划线转驼峰
* 思路:
* step1.原字符串转小写,原字符串中的分隔符用空格替换,在字符串开头加上分隔符
* step2.将字符串中每个单词的首字母转换为大写,再去空格,去字符串首部附加的分隔符.
*/
function camelize($uncamelized_words,$separator='_')
{
$uncamelized_words = $separator. str_replace($separator, " ", strtolower($uncamelized_words));
return ltrim(str_replace(" ", "", ucwords($uncamelized_words)), $separator );
} /**
* 驼峰命名转下划线命名
* 思路:
* 小写和大写紧挨一起的地方,加上分隔符,然后全部转小写
*/
function uncamelize($camelCaps,$separator='_')
{
return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $separator . "$2", $camelCaps));
}
第三种:
/**
* 下划线转驼峰
* 思路:
* step1.原字符串转小写,原字符串中的分隔符用空格替换,在字符串开头加上分隔符
* step2.将字符串中每个单词的首字母转换为大写,再去空格,去字符串首部附加的分隔符.
*/
public static function hump($uncamelized_words,$separator='_'){
$words = str_replace($separator, " ", strtolower($uncamelized_words));
return str_replace(" ", "", ucwords($words));
} /**
* 驼峰命名转下划线命名
* 思路:
* 小写和大写紧挨一起的地方,加上分隔符,然后全部转小写
*/
public static function unHump($camelCaps,$separator='_'){
return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $separator . "$2", $camelCaps));
}
驼峰命名和下划线命名互转php实现的更多相关文章
- Java-驼峰命名与下划线命名互转
		package com.xsh.util; /** * String工具类 * * @author xieshuang * @date 2019-05-23 */ public class Strin ... 
- json字符串中key值下划线命名转换为驼峰命名
		json字符串中key值下划线命名转换为驼峰命名: 例如: 原json串: String json= "{'user_name':'ok','user_sex':0,'object_info ... 
- notepad++,vim驼峰命名与下划线的互相转换
		notepad++,vim驼峰命名与下划线的互相转换 IDDAY_TIMEDAY_FULL_NAMEDAY_OF_WEEKYEAR_MONTHYREA_NAME 下滑线转驼峰 大写转小写 有这么些 ... 
- 2018-11-09 VS Code英汉词典插件v0.0.4-驼峰下划线命名
		首先, 在两天时间内安装数破百, 多谢支持. VS Code插件市场地址: 英汉词典 - Visual Studio Marketplace 开源库地址同前文: Visual Studio Code插 ... 
- 详解 Python 中的下划线命名规则
		在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单 ... 
- ASP.NET Core 请求/查询/响应参数格式转换(下划线命名)
		业务场景: 在 ASP.NET Core 项目中,所有的代码都是骆驼命名,比如userName, UserName,但对于 WebApi 项目来说,因为业务需要,一些请求.查询和响应参数的格式需要转换 ... 
- camel-name-utils 在驼峰风格跟下划线风格之间切换
		用处 用来将字符串在驼峰风格跟下划线风格之间切换. 对于一般人可能没用.对于写orm框架的人有点作用. 样例: company_name -> companyName 安装方式 加入下面依赖到p ... 
- js 驼峰命名和下划线互换
		代码走你 // 下划线转换驼峰 function toHump(name) { return name.replace(/\_(\w)/g, function(all, letter){ return ... 
- Python 的类的下划线命名有什么不同?
		1. 以一个下划线开头的命名 ,如_getFile2. 以两个下划线开头的命名 ,如__filename3. 以两个下划线开头和结尾的命名,如 __init__()4. 其它 单下划线前缀的 ... 
随机推荐
- Dll 使用 PChar 参数的小例子 - 回复 "linximf" 的问题
			本例效果图: Dll 文件: library Lib; uses SysUtils, Classes; {$R *.res} procedure Test(p: PChar); const T ... 
- VC++ ToolTip的简单使用
			1.在基于对话框的MFC应用程序中使用Tooltip,首先在Dlg类的头文件中定义一个变量: CToolTipCtrl m_iToolTips; 2.在Dlg类的OnInitDialog中添加代码: ... 
- Linq中使用Left Join rught join
			准备一些测试数据,如下: use Test Create table Student( ID int identity(1,1) primary key, [Name] nvarchar(50) no ... 
- oracle数据备份
			from:http://www.docin.com/p-728428621.html 
- mybatis之parameterType传递多个参数
			当在查询的时候需要传入多个参数的时候该怎么办呢: 1,封装成一个Model对象,底层HashMap还是一个 User user=new User(); user.setUserName("z ... 
- 说说M451的例程库的说明
			Directory Information Document Driver reference manual and reversion history. Library Driv ... 
- PHP虚拟主机的配置
			今天配置了一下虚拟目录,以下是我的配置方法. 1 编辑httpd.conf,查找Include conf/extra/httpd-vhosts.conf,把前面注释符号“#”删掉. 2 编辑htt ... 
- LeetCode——Basic Calculator
			Description: Implement a basic calculator to evaluate a simple expression string. The expression str ... 
- cookie带来的致命危险
			1.危险:当记录了过多的cookie时,可能导致http header过大,进而导致服务器端发生错误,导致用户无法打开页面. 2.cookie限制: 各浏览器对单cookie键的限制基本都在4kb左右 ... 
- vux 全局注册组件
			背景:调试better-scroll的时候进行封装,作为组件来调用: 希望:全局注册组件: 1,在src的main.js下: 这样就可以用了: 
