lcfirst

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

lcfirst将字符串的第一个字符转换为小写

描述

lcfirst(string $string): string

如果 string 的第一个字符是范围在 "A" (0x41) 到 "Z" (0x5a) 之间的 ASCII 字符,则返回一个将该字符转换为小写的字符串。

参数

string

输入字符串。

返回值

返回生成的字符串。

变更日志

版本 描述
8.2.0 大小写转换不再依赖于使用 setlocale() 设置的区域设置。 只有 ASCII 字符会被转换。

示例

示例 #1 lcfirst() 示例

<?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() - 将字符串中每个单词的第一个字符转换为大写

添加注释

用户贡献的注释 4 个注释

phpnet at katylavallee dot com
15 年前
我发现的最简单的解决方法是 <5.3
<?php

$string
= "CamelCase"
$string{0} = strtolower($string{0})
echo
$string; // 输出 camelCase

?>
alex aulbach
15 年前
在某些情况下可能更有用?

$lower = strtolower( substr($upper,0,1) ) . substr($upper,1);
harmor
16 年前
来自 Northie 在此处的帖子( http://us2.php.net/manual/en/function.ucfirst.php#68443)中的一个轻微修改,其中可能在您的 PHP 版本中不存在 lcfirst

<?php

if(false === function_exists('lcfirst'))
{
/**
* 将字符串的第一个字符转换为小写
*
* @param string $str
* @return string 生成的字符串。
*/
function lcfirst( $str ) {
$str[0] = strtolower($str[0]);
return (string)
$str;
}
}

/* 测试 */
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!!!" */
ahlers_wim at hotmail dot com
15 年前
从 PHP 版本 6 开始,不再允许直接引用修改。
引用修改是通过诸如
$str[0] 在代码行中:$str[0] = strtolower($str[0]);

出于这个原因,我已经按照以下方式重新编写了 lcfirst 函数(在 function_exists('lcfirst') === false 上)

<?php
if ( false === function_exists('lcfirst') ):
function
lcfirst( $str )
{ return (string)(
strtolower(substr($str,0,1)).substr($str,1));}
endif;
?>

备注
还要注意,我使用了更现代的范围分隔符(if:-endif;)并且我还删除了不必要的中间结果。 也就是说,操作直接返回。
To Top