gpt4 book ai didi

php - 如何让 sprintf 优雅地失败?

转载 作者:可可西里 更新时间:2023-11-01 00:16:40 25 4
gpt4 key购买 nike

我必须制作一个 GUI,允许我的客户自定义问候语。他们明白他们将不得不使用 %s 来指示用户名的显示位置。但是当指定的 %s 太多时,sprintf 失败并显示消息 Too few arguments

是否可以选择在字符串中保留多余的 %s 实例或仅用空字符串替换它们?

// $greeting_template === 'Welcome to our site %s. Broken: %s'
$output = sprintf($greeting_template, $user_name);

显然还有其他 sprintf 格式化模板,这些模板也应该优雅地失败。

最佳答案

您应该确保消息模板有效,而不是修复损坏的模板

if (substr_count($greeting_template, '%s') > 1)
throw new Exception('Too many placeholders');

substr_count()

或者你切换到一个完全自己的字符串模板格式,比如

$greeting_template = 'Welcome to our site {username}. Broken: {username}';
$replacements = array('{username}' => $username);
$message = str_replace(
array_keys($replacements),
array_values($replacements),
$greeting_template);

关于php - 如何让 sprintf 优雅地失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6801690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com