驼峰命名法和下划线风格的互转
2015-10-16 15:14
573 查看
偶然遇到这个问题,感觉有些意思,于是研究了一下。
下划线转驼峰比较简单,直接根据下划线打散成数组,每个子项首字符转大写,再做字符串拼接即可。
驼峰转下划线风格,稍微复杂一些。刚开始我没有思路,后来想到,可以遍历字符串,遇到大写字母将其转换成小写,并在前面加一个下划线。
最终实现:
遍历字符串,用到的不多,但PHP提供了这个强大的特性:
我们可以像遍历数组一样来操作字符串的每一个字符。
如何检测一个字母是大写?刚开始我准备用正则表达式,但很快想到更简单的方式:
如果该条件成立,$str 一定是大写字母。
测试代码是否正确运行:
下划线转驼峰比较简单,直接根据下划线打散成数组,每个子项首字符转大写,再做字符串拼接即可。
驼峰转下划线风格,稍微复杂一些。刚开始我没有思路,后来想到,可以遍历字符串,遇到大写字母将其转换成小写,并在前面加一个下划线。
最终实现:
class CamelTool{ //驼峰命名法转下划线风格 public static function toUnderScore($str){ $array = array(); for($i=0;$i<strlen($str);$i++){ if($str[$i] == strtolower($str[$i])){ $array[] = $str[$i]; }else{ if($i>0){ $array[] = '_'; } $array[] = strtolower($str[$i]); } } $result = implode('',$array); return $result; } //下划线风格转驼峰命名法 public static function toCamelCase($str){ $array = explode('_', $str); $result = ''; foreach($array as $value){ $result.= ucfirst($value); } return $result; } }
遍历字符串,用到的不多,但PHP提供了这个强大的特性:
for($i=0; $i< strlen($str);$i++){ echo $str[$i]; }
我们可以像遍历数组一样来操作字符串的每一个字符。
如何检测一个字母是大写?刚开始我准备用正则表达式,但很快想到更简单的方式:
$str != strtolower($str);
如果该条件成立,$str 一定是大写字母。
测试代码是否正确运行:
$str = 'user_point_log'; $result = CamelTool::toCamelCase($str); //输出 UserPointLog echo $result; echo '<br/>'; $str = 'UserPointLog'; $result = CamelTool::toUnderScore($str); //输出 user_point_log echo $result;
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- php xml 入门学习资料