我接手现有程序员的一个项目,说实话,他把这个项目留在了一大堆无法维护,难以理解的混乱中(编辑/澄清:几十个独立的.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,我试图找出他为什么会使用这种方法,因为它可能有助于我理解逻辑在他建立的一些事情背后。
答案 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元素时,我经常使用printf
,sprintf
或strtr
。它更具可读性,以后更容易更换值。