PHP sprintf vs. echo
|
我今晚早些时候发布了一个问题-PHP Wordpress引号问题,其中一些引号引起了我一些问题。
发布了一个答案,建议使用echo sprintf。这看起来很干净,并解决了可能发生的任何变量和报价问题。我的问题是,使用sprintf有什么缺点?如果有的话
如果通常会导致HTML和PHP混合出现问题,为什么我们要使用“ 0”呢?作为参考,这是回显的语句:
echo \"<img src=\'\"; bloginfo(\'template_url\'); echo \"img/\" . $f[\'mainImage\'] . \".png\' />\";
以及echo和sprintf:
echo sprintf(
\'<img src=\"%s/img/%s.png\" />\',
get_bloginfo(\'template_url\'),
$f[\'mainImage\']
);
没有找到相关结果
已邀请:
5 个回复
娠频摩
由于字符串是用单引号引起来的,因此php引擎不会尝试将$ variable解释为实际变量,并且将在引号中看到内容。 使用双引号
在此示例中,php将尝试查找名为$ variable的变量,并在字符串中使用其内容。 Heredoc语法 Heredoc对诸如您想做的事情很有用-您混合使用变量,单引号,双引号并转义所有可能造成混乱的内容。因此,优秀的php人员为我们实现了以下语法:
将会发生的事情是,PHP引擎将尝试解释变量(和函数,但是我不会发布有关如何执行此操作的示例,因为它可以在php.net上找到),但是您使用<< Nowdoc语法
它与使用单引号字符串相同-不会发生任何变量替换,并且要指定诸如nowdoc的内容-只需用示例中所示的单引号字符包装定界符即可。 如果您能够理解这四个原则,则字符串中的引号问题应该可以解决了:)
程琶
细屠截殴些
部窖空
比
的处理速度更快
场竟矩喘崩
而不是
;前者返回一个字符串而不是回显它。 sprintf更像是一种样式的东西-有些人喜欢用c-style
格式的字符串替换其变量,另一些人喜欢在字符串文字中使用PHP的变量扩展。