Easiest work-around I've found for <5.3:
<?php
$string = "CamelCase"
$string{0} = strtolower($string{0})
echo $string; // outputs camelCase
?>
(PHP 5 >= 5.3.0, PHP 7)
lcfirst — Make a string's first character lowercase
$str
)
Returns a string with the first character of
str
lowercased if that character is
alphabetic.
Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted.
str
The input string.
Returns the resulting string.
Example #1 lcfirst() example
<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo); // helloWorld
$bar = 'HELLO WORLD!';
$bar = lcfirst($bar); // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>
Easiest work-around I've found for <5.3:
<?php
$string = "CamelCase"
$string{0} = strtolower($string{0})
echo $string; // outputs camelCase
?>
In some cases maybe more useful?
$lower = strtolower( substr($upper,0,1) ) . substr($upper,1);
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!!!" */
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.