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 — Wandelt den ersten Buchstaben eines Strings in einen Kleinbuchstaben um
Wandelt das erste Zeichen von string
in einen
Kleinbuchstaben um, sofern es ein ASCII-Zeichen im Bereich von
"A"
(0x41) bis "Z"
(0x5a) ist, und
gibt die veränderte Zeichenkette zurück.
string
Der Eingabestring.
Gibt die verarbeitete Zeichenkette zurück.
Version | Beschreibung |
---|---|
8.2.0 | Die Umwandlung von Groß- und Kleinschreibung hängt nicht mehr von der mit setlocale() eingestellten Locale ab. Es werden nur ASCII-Zeichen umgewandelt. |
Beispiel #1 lcfirst()-Beispiel
<?php
$foo = 'HalloWelt';
$foo = lcfirst($foo); // halloWelt
$bar = 'HALLO WELT!';
$bar = lcfirst($bar); // hALLO WELT!
$bar = lcfirst(strtoupper($bar)); // hALLO WELT!
?>
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.