zoukankan      html  css  js  c++  java
  • 驼峰命名和下划线命名互转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));
        }
  • 相关阅读:
    二分图最大匹配的K&#246;nig定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/jiangxiaobo/p/7506294.html
Copyright © 2011-2022 走看看