PHP源码阅读笔记二:strlen, strtolower, strtoupper, ord, chr函数

PHP源码阅读笔记二:strlen, strtolower, strtoupper, ord, chr函数

int strlen ( string string )
返回字符串的长度
在标准扩展中并没有相关的实现,在其它扩展函数中使用Z_STRLEN、Z_STRLEN_P或Z_STRLEN_PP取得长度

string strtolower ( string str )
将一个字符串变为小写,其实现如下代码
【经典源代码】

1
2
3
4
5
6
7
8
9
10
11
12
13
char *php_strtolower(char *s, size_t len)
{
              unsigned char *c, *e;
 
              c = s;
              e = c+len;
 
              while (c < e) {
                            *c = tolower(*c);
                            c++;
              }
              return s;
}

这虽然是一个简单的遍历字符串并将每个字符变为小写的程序,但是这是一个使用指针的标程。

string strtoupper ( string string )
将一个字符串变为大写
代码实现与上面的程序类似只是将tolower函数变成了toupper
string chr ( int ascii )
返回相对应于 ascii 所指定的单个字符。
其本质是返回一个长度为1的字符串
【源代码】

1
2
3
              temp[0] = (char) Z_LVAL_PP(num);
              temp[1] = 0;
              RETVAL_STRINGL(temp, 1, 1);

int ord ( string string )
返回字符的ASCII值
其本质上是返回字符串第一个字符的ASCII值
【源代码】

1
RETURN_LONG((unsigned char) Z_STRVAL_PP(str)[0]);

PHP源码阅读笔记二:strlen, strtolower, strtoupper, ord, chr函数》上有1条评论

robert进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注


*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>