[PHP源碼閱讀]strtolower和strtoupper函數,strtoupper
字串的操作函數中,字串的大小寫轉換也算是比較常用的函數,其底層實現也比較簡單,下面來一探究竟。
我在github上有對PHP源碼更詳細的註解。感興趣的可以圍觀一下,給個star。PHP5.4源碼註解。可以通過commit記錄查看已添加的註解。
strtolower
string strtolower ( string $string )
將字串轉換成小寫字元。
strtoupper
string strtoupper ( string $string )
將字串轉換成大寫字元。
運行樣本
$str = 'Hello World';$new_str = strtolower($str); // hello world$str = 'hello world';$new_str = strupper($str); // HELLO WORLD
代碼運行步驟
拷貝一份字串
php_strtolower/php_strtoupper進行轉換
源碼解讀
兩個函數的核心操作都差不多,講一下strtolower,另一個是類似的。
php_strtolower函數的核心代碼如下:
c = (unsigned char *)s;e = c+len;// 遍曆s,逐個變為小寫while (c < e) { *c = tolower(*c); c++;}return s;
這個函數就是遍曆整個字串,逐個轉成小寫字元。這也是一個經典的指標操作。
原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知。
如果本文對你有協助,請點下推薦吧,謝謝^_^
最後再安利一下,我在github有對PHP源碼更詳細的註解。感興趣的可以圍觀一下,給個star。PHP5.4源碼註解。可以通過commit記錄查看已添加的註解。
更多源碼文章,歡迎訪問個人首頁繼續查看:hoohack
http://www.bkjia.com/PHPjc/1131142.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1131142.htmlTechArticle[PHP源碼閱讀]strtolower和strtoupper函數,strtoupper 字串的操作函數中,字串的大小寫轉換也算是比較常用的函數,其底層實現也比較簡單,...