加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在printf()字符串中命名PHP说明符

发布时间:2020-12-13 17:29:55 所属栏目:PHP教程 来源:网络整理
导读:有没有办法在 PHP中命名我的说明符像 Python? 我想要这个PHP: $foo = array('name' = 24);printf("%(name)d",$foo); 我在谷歌或php手册中找不到任何相关内容. 好问题! 通过使用正则表达式,您可以自己滚动自己而不用太麻烦.我基于这个实现,就是调用 vsprin
有没有办法在 PHP中命名我的说明符像 Python?

我想要这个PHP:

$foo = array('name' => 24);
printf("%(name)d",$foo);

我在谷歌或php手册中找不到任何相关内容.

好问题!

通过使用正则表达式,您可以自己滚动自己而不用太麻烦.我基于这个实现,就是调用vsprintf的想法,它最接近内置的printf函数系列中的所述目标:

function vsprintf_named($format,$args) {
    $names = preg_match_all('/%((.*?))/',$format,$matches,PREG_SET_ORDER);

    $values = array();
    foreach($matches as $match) {
        $values[] = $args[$match[1]];
    }

    $format = preg_replace('/%((.*?))/','%',$format);
    return vsprintf($format,$values);
}

去测试:

$foo = array('age' => 5,'name' => 'john');
echo vsprintf_named("%(name)s is %(age)02d",$foo);

更新:我的初始实现是非常lambda快乐.结果是一个超级基本的foreach就足够了,这也使得函数可以在PHP> = 4.1中使用(不是100%确定具体的版本,而应该在那里).

See it in action.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读