PHP:如何将NULL连接到字符串

时间:2011-10-25 11:53:40

标签: php string printf

突然我的网站显示了新警告 -

相关代码:

printf ("<input type='text' name='C_Comment' value='" . $myComment . "'  >");

我得到的警告:

  • 警告:printf()function.printf:参数太少

可能是因为$ myComment为空。

  1. 我知道我可以修复它,如果我首先测试该值是否为null,然后才能对其进行补充。但有更简单的方法吗?

  2. 为什么我之前没有收到此警告?

  3. 谢谢,

    Atara

    编辑:抱歉,错误的标题。问题是$ myComment不是NULL,它包含特殊字符。

4 个答案:

答案 0 :(得分:6)

不,你收到了警告,因为你没有给printf提供足够的论据;可能$myComment包含像%s这样的printf占位符。

如果您不想使用echo的格式,请使用printf。您还可以重写printf来电:

printf ("<input type='text' name='C_Comment' value='%s'>",
    $myComment);

确保您已转义$myComment中的特殊字符(请参阅htmlspecialchars)。

答案 1 :(得分:4)

而不是使用printf,只需使用echo

echo "<input type='text' name='C_Comment' value='" . $myComment . "'  >";

答案 2 :(得分:1)

printf是一个用于格式化具有给定值的字符串的函数。你只为函数提供了一个参数,所以它会在你面前抛出这个错误。

如果您只想在页面上打印文本,请使用当前字符串的echo(或只删除f并使用print)。或者你可以这样做:

printf("<input type='text' name='C_Comment' value='%s' />", $my_comment);

Here's the PHP.net Docs page for printf(),您还可以在另请参阅部分中查看相关功能。

答案 3 :(得分:-1)

如果您有默认值(非空),请在prinf调用之前添加:

$myComment = ($myComment == null) ? 'yourdefaultvalue' : $myComment;

当然,回声也会很好(而且空值不再是问题):

<input type="text" name="C_Comment" value="<?=myComment?>" />