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

?> 
相关文章
相关标签/搜索