Php 使用ini_set()的mbstring函数重载

Php 使用ini_set()的mbstring函数重载,php,Php,我希望能够使用ini\u set()在PHP文件中设置mbstring.func\u重载,例如: ini_set( 'mbstring.func_overload', 7 ); $foo = 'é'; echo "Expected output: 1 1\n" , "Output: " , strlen( $foo ) , mb_strlen( $foo ); 产出: Expected output: 1 1 Output: 2 1 上面写着: 只能从php.ini文件更改此设置 这就解释了

我希望能够使用
ini\u set()
在PHP文件中设置
mbstring.func\u重载
,例如:

ini_set( 'mbstring.func_overload', 7 );
$foo = 'é';
echo "Expected output: 1 1\n"
, "Output: " , strlen( $foo ) , mb_strlen( $foo );
产出:

Expected output: 1 1
Output: 2 1
上面写着:

只能从php.ini文件更改此设置


这就解释了这种意外的行为。那么我应该怎么做呢?

老实说,最好使用对mb*函数的显式调用,而不是重载基本的字符串函数,因为这样还可以同时计算字节数characters@MarkBaker但这太难看了:/还有什么更重要?丑陋还是可读性/功能性?如果有人第一次做strlen时没有意识到设置了mbstring.func_重载,并且得到了意外的结果,就会在这里发布消息说strlen没有work@MarkBaker说到点子上,我就这么做