src/Str.php
public static function lcfirst($input, $encoding = self::DEFAULT_ENCODING)
    {
        return function_exists('mb_strtolower')
            ? mb_strtolower(mb_substr($input, 0, 1, $encoding), $encoding) .
            mb_substr($input, 1, mb_strlen($input, $encoding), $encoding)
            : lcfirst($input);
    }
public static function lcfirst($input, $encoding = self::DEFAULT_ENCODING)
    {
        return function_exists('mb_strtolower')
            ? mb_strtolower(mb_substr($input, 0, 1, $encoding), $encoding) .
            mb_substr($input, 1, mb_strlen($input, $encoding), $encoding)
            : lcfirst($input);
    }
public static function lcfirst ( $ input , $ encoding = self :: DEFAULT_ENCODING ) { return function_exists ( 'mb_strtolower' ) ? mb_strtolower ( mb_substr ( $ input , 0 , 1 , $ encoding ) , $ encoding ) . mb_substr ( $ input , 1 , mb_strlen ( $ input , $ encoding ) , $ encoding ) : lcfirst ( $ input ) ; }
Returns a string with the first char as lowercase.

Returns a string with the first char as lowercase. The other characters in the string are left untouched.
The $encoding parameter is used to determine the input string encoding and thus use the proper method.
The function uses mb_strtolower, mb_mb_substr and mb_strlen if present and falls back to lcfirst.

@author FuelPHP (http://fuelphp.com)

@param string $input    The input string
@param string $encoding The encoding of the input string

@return string The string with the first char lowercased
Returns a string with the first char as lowercase .