mb_substr和 mb_strcut 區分

php的mbstring擴展模塊提供了多字節字符的處理能力,日常最經常使用的就是用mbstring來切分多字節的中文字符,這樣能夠避免出現半個字符的狀況,因爲是php的擴展,它的性能也要比一些自定義的多字節切分函數要好上一些。php

mbstring extension提供了幾個功能相似的函數,mb_substr和mb_strcut,看看手冊上對它們的解釋。
函數

舉個例子來講,有一段文字, 分別用mb_substr和mb_strcut來作切分:性能

plain text
code: 
<?php
$str = '我是一串比較長的中文||www.163.com';
 
echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');
 
echo "<br>";
 
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
?>
輸出結果以下:spa

mb_substr:我是一串比較
mb_strcut:我是
/**code

**&引用說明內存

/utf-8

1.變量的引用string

<?it

    $a="ABC";io

    $b =&$a;

    echo $a;//這裏輸出:ABC

    echo $b;//這裏輸出:ABC

    $b="EFG";

    echo $a;//這裏$a的值變爲EFG 因此輸出EFG

    echo $b;//這裏輸出EFG

?>

2.函數的引用傳遞(傳址調用  

<?php

    function test(&$a)

    {

        $a=$a+100;

    }

    $b=1;

    echo $b;//輸出1

    test($b);   //這裏$b傳遞給函數的實際上是$b的變量內容所處的內存地址,經過在函數裏改變$a的值 就能夠改變$b的值了

    echo "<br>";

    echo $b;//輸出101

?>

要注意的是,在這裏test(1);的話就會出錯,緣由本身去想。

 

注意:

    上面的「 test($b); 」 中的$b前面不要加 & 符號,可是在函數「call_user_func_array」中,若要引用傳參,就得須要 & 符號,以下代碼所示:


<? php

function  a( & $b ){
    
$b ++ ;
}
$c = 0 ;

call_user_func_array ( ' a ' , array ( & $c ));

echo   $c ;

// 輸出 1

?> 
相關文章
相關標籤/搜索