有人会将printf()用于几乎所有事情的原因吗?

时间:2011-11-28 21:47:48

标签: php mysql validation variables printf

我接手现有程序员的一个项目,说实话,他把这个项目留在了一大堆无法维护,难以理解的混乱中(编辑/澄清:几十个独立的.php页面是php / html / css的汤,都引用了一个巨大的1500行'functions.php'文件,ack)

话虽如此,似乎几乎每个地方都有变量,数组等,他使用了printf()。

例如,而不是使用:

foreach($thing as $t) {
    echo "<option value='".$t."'>".$t."</option>";
}

他会使用类似的东西:

foreach($thing as $t) {
     printf("<option value='%s'>%s</option>", $t, $t);
}

有没有人知道为什么他会这样做?通过使用printf()而不是echo / print,我是否有一些未知的好处?

请注意,这不仅适用于可能需要验证/清除的值,而是适用于所有情况。从数据库,随机变量和其他地方定义的数组中提取的数据,绝对一切都是printf()而不仅仅是echo或print,我试图找出他为什么会使用这种方法,因为它可能有助于我理解逻辑在他建立的一些事情背后。

3 个答案:

答案 0 :(得分:5)

“优先使用printf()而不是echo或print()的唯一原因是你将使用带有附加参数的格式字符串占位符功能(每个这样的占位符一个)。如果没有,那么print()会更快,甚至(非常轻微)回显更快,因为它不会产生返回值。“

在此处找到:echo VS printf

答案 1 :(得分:4)

我想他是为了代码读取能力而做的。我认为使用printf / sprintf更具可读性 将变量直接嵌入到字符串中并交替'"""''""''"

我个人认为这是最易读的方法:

<?php foreach($thing as $t): ?>
     <option value="<?php echo $t ?>"><?php echo $t ?></option>
<?php endforeach; ?>

它具有在大多数IDE中看起来不错的额外好处

答案 2 :(得分:2)

好吧,我肯定会在你的例子中使用printf。在输出具有大量属性或复杂属性的html元素时,我经常使用printfsprintfstrtr。它更具可读性,以后更容易更换值。