mb_substr和 mb_strcut 区分

php的mbstring扩展模块提供了多字节字符的处理能力,平常最常用的就是用mbstring来切分多字节的中文字符,这样可以避免出现半个字符的情况,由于是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');
?>
输出结果如下:

mb_substr:我是一串比较
mb_strcut:我是
/**

**&引用说明

/

1.变量的引用

<?

    $a="ABC";

    $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

?> 

你可能感兴趣的:(PHP)