为了账号安全,请及时绑定邮箱和手机立即绑定

对多字节字符串使用变量函数

对多字节字符串使用变量函数

PHP
婷婷同学_ 2022-07-22 09:57:37
我有一个有点复杂的搜索和替换算法,它使用许多不同的字符串函数。而不是在我的代码中添加这样的东西:$mb = true; // use mb functions or not$len = $mb? mb_strlen($s) : strlen($s);我正在考虑这样做,只有一次:$_strpos = $mb? 'mb_strpos' : 'strpos';$_substr = $mb? 'mb_substr' : 'substr';$_strlen = $mb? 'mb_strlen' : 'strlen';然后我可以使用这样的代码:$len = $_strlen($s);有用。代码更短更清晰,我认为应该更快。有什么理由不这样做吗?
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

我可以想到一个主要原因:透明度。无论您还是任何未来的开发人员,甚至您的 IDE 都不能 100% 确定最终会调用哪个函数。这是朝着创建无法维护的意大利面条代码迈出的一步。我的建议:不要这样做!


一直使用mb_函数有什么问题?如果我明确需要对字节而不是字符进行操作,我只会使用其他函数。作为程序员,您应该知道是否需要对单个字节或字符执行操作。


如果您担心可能无法加载 mbstring 扩展名,那么您可以在代码中添加对此的检查。


if (!extension_loaded('mbstring')) {

    throw new \Exception('MBString is not loaded as an extension!');


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号