lcfirst()
(PHP 5 >= 5.3.0, PHP 7)
使一个字符串的第一个字符小写
说明
lcfirst(string $str) : string
返回第一个字母小写的$str,如果是字母的话。
需要注意的是“字母”是由当前语言区域决定的。比如,在默认的“C”区域像日耳曼语系中的元音变音a (ä)将不会被转换。
参数
- $str
输入的字符串。
返回值
返回转换后的字符串。
范例
Example #1lcfirst()例子:
<?php $foo = 'HelloWorld'; $foo = lcfirst($foo); // helloWorld $bar = 'HELLO WORLD!'; $bar = lcfirst($bar); // hELLO WORLD! $bar = lcfirst(strtoupper($bar)); // hELLO WORLD! ?>
参见
ucfirst()
将字符串的首字母转换为大写strtolower()
将字符串转化为小写strtoupper()
将字符串转化为大写ucwords()
将字符串中每个单词的首字母转换为大写
Easiest work-around I've found for <5.3: <?php $string = "CamelCase" $string{0} = strtolower($string{0}) echo $string; // outputs camelCase ?>
A slight modification from Northie's post here ( http://us2.php.net/manual/en/function.ucfirst.php#68443), where lcfirst may not exist in your PHP build: <?php if(false === function_exists('lcfirst')) { /** * Make a string's first character lowercase * * @param string $str * @return string the resulting string. */ function lcfirst( $str ) { $str[0] = strtolower($str[0]); return (string)$str; } } /* Tests */ echo var_dump(lcFirst(NULL)).'<br />'; /* string(0) "" */ echo var_dump(lcFirst('')) .'<br />'; /* string(0) "" */ echo var_dump(lcFirst('S')) .'<br />'; /* string(1) "S" */ echo var_dump(lcFirst('É')) .'<br />'; /* string(0) "�" */ echo var_dump(lcFirst('Hello World!!!')); /* string(14) "hello World!!!" */
In some cases maybe more useful? $lower = strtolower( substr($upper,0,1) ) . substr($upper,1);
As of PHP release 6 direct reference modification is not permitted any more. Reference modification is the process of manipulating characters within a string by means of the instruction such as: $str[0] in the code line: $str[0] = strtolower($str[0]); For this reason I have recoded the lcfirst function (on function_exists('lcfirst') === false) as follows: <?php if ( false === function_exists('lcfirst') ): function lcfirst( $str ) { return (string)(strtolower(substr($str,0,1)).substr($str,1));} endif; ?> Remarks: Also notice that I have used the more modern scope delimeters (if:-endif;) and I have also removed the unnecessary intermediate result. That is, the manipulation is returned directly.