1. 程式人生 > >php內置函數分析之ucfirst()、lcfirst()

php內置函數分析之ucfirst()、lcfirst()

stand 分析 調用c函數 string value 源碼 col rst word

ucfirst($str)

str 的首字符(如果首字符是字母)轉換為大寫字母,並返回這個字符串。

源碼位於 ext/standard/string.c

 1 /* {{{ php_ucfirst
 2    Uppercase the first character of the word in a native string */
 3 static void php_ucfirst(char *str)
 4 {
 5     register char *r;
 6     r = str;
 7     *r = toupper((unsigned char) *r);
 8 }
 9
/* }}} */ 10 11 /* {{{ proto string ucfirst(string str) 12 Makes a string‘s first character uppercase */ 13 PHP_FUNCTION(ucfirst) 14 { 15 zend_string *str; 16 17 ZEND_PARSE_PARAMETERS_START(1, 1) 18 Z_PARAM_STR(str) 19 ZEND_PARSE_PARAMETERS_END(); 20 21 if (!ZSTR_LEN(str)) {
22 RETURN_EMPTY_STRING(); 23 } 24 25 ZVAL_STRINGL(return_value, ZSTR_VAL(str), ZSTR_LEN(str)); 26 php_ucfirst(Z_STRVAL_P(return_value)); 27 } 28 /* }}} */
*r = toupper((unsigned char) *r); 這句調用c函數toupper()將字符數組的第一個元素轉為大寫。
函數lcfirst()的實現與ucfirst()類似。
 

php內置函數分析之ucfirst()、lcfirst()