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, PHP 8)
lcfirst — Met le premier caractère en minuscule
$string
): string
Retourne une chaîne dont le premier caractère de
string
a été mis en minuscule, si ce caractère
est un caractère alphabétique.
Notez que 'alphabétique' est déterminé par la locale courante. Par exemple, dans la locale par défaut "C", les caractères comme a-umlaut (ä) ne seront pas convertis.
string
La chaîne d'entrée.
Retourne la chaîne résultante.
Exemple #1 Exemple avec lcfirst()
<?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.