2011-01-14 206 views
0

我對PHP函數相當陌生我真的不知道底層函數的作用,有人可以給出一個解釋或工作示例來解釋下面的函數。謝謝。PHP函數問題

PHP函數。

function mbStringToArray ($str) { 
    if (empty($str)) return false; 
    $len = mb_strlen($str); 
    $array = array(); 
    for ($i = 0; $i < $len; $i++) { 
     $array[] = mb_substr($str, $i, 1); 
    } 
    return $array; 
} 

function mb_chunk_split($str, $len, $glue) { 
    if (empty($str)) return false; 
    $array = mbStringToArray ($str); 
    $n = 0; 
    $new = ''; 
    foreach ($array as $char) { 
     if ($n < $len) $new .= $char; 
     elseif ($n == $len) { 
      $new .= $glue . $char; 
      $n = 0; 
     } 
     $n++; 
    } 
    return $new; 
} 
+0

我認爲它們形成chunk_split`的`多字節版本。 http://php.net/chunk_split多字節意味着他們可以處理UTF-8字符串,其中一個字符可以包含多個字節 – 2011-01-14 00:22:48

+0

你是對的。 – HELP 2011-01-14 00:24:13

回答

1

第一個函數接受一個多字節字符串並將其轉換爲一個字符數組,並返回該數組。

第二個函數需要一個多字節字符串並且每$len個字符插入$glue字符串。

0
function mbStringToArray ($str) {   // $str is a function argument 
    if (empty($str)) return false;   // empty() checks if the argument is not equal to NULL (but does exist) 
    $len = mb_strlen($str);    // returns the length of a multibyte string (ie UTF-8) 
    $array = array();      // init of an array 
    for ($i = 0; $i < $len; $i++) {  // self explanatory 
     $array[] = mb_substr($str, $i, 1); // mb_substr() substitutes from $str one char for each pass 
    } 
    return $array;       // returns the result as an array 
} 

這將有助於你理解第二功能