突然我的网站显示了新警告 -
相关代码:
printf ("<input type='text' name='C_Comment' value='" . $myComment . "' >");
我得到的警告:
可能是因为$ myComment为空。
我知道我可以修复它,如果我首先测试该值是否为null,然后才能对其进行补充。但有更简单的方法吗?
为什么我之前没有收到此警告?
谢谢,
Atara
编辑:抱歉,错误的标题。问题是$ myComment不是NULL,它包含特殊字符。答案 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?>" />