字串的操作函式中,字串的大小寫轉換也算是比較常用的函式,其底層實現也比較簡單,下面來一探究竟。
我在github有對PHP原始碼更詳細的註解。感興趣的可以圍觀一下,給個star。PHP5.4原始碼註解。可以通過commit記錄檢視已新增的註解。
strtolower
1 |
string strtolower ( string $string ) |
將字串轉換成小寫字元。
strtoupper
1 |
string strtoupper ( string $string ) |
將字串轉換成大寫字元。
執行示例
1 2 3 4 5 |
$str = 'Hello World'; $new_str = strtolower($str); // hello world $str = 'hello world'; $new_str = strtoupper($str); // HELLO WORLD |
程式碼執行步驟
拷貝一份字串
php_strtolower/php_strtoupper進行轉換
原始碼解讀
兩個函式的核心操作都差不多,講一下strtolower,另一個是類似的。 php_strtolower函式的核心程式碼如下:
1 2 3 4 5 6 7 8 9 |
c = (unsigned char *)s; e = c+len; // 遍歷s,逐個變為小寫 while (c < e) { *c = tolower(*c); c++; } return s; |
這個函式就是遍歷整個字串,逐個轉成小寫字元。這也是一個經典的指標操作。
打賞支援我寫出更多好文章,謝謝!
打賞作者
打賞支援我寫出更多好文章,謝謝!
任選一種支付方式