忽略这个问题。提出错误:
以下两个printf语句之间的区别是什么:
printf($variable, "\n");
printf("Hello\n");
在第一个printf()语句中忽略换行符。但它与第二个声明一起工作正常。
我可以使用新行的唯一方法是将第一个语句拆分为两个单独的语句:
printf($variable);
printf("\n");
这听起来像是来自绝对新手的查询但是我觉得新行在Java中得到了很好的支持,但在PHP中却没有。
答案 0 :(得分:4)
有两个字符串运算符。第一个是连接 operator('
.
'),返回其左右的连接 参数。
PHP中的正确语法是:
printf($variable . "\n");
答案 1 :(得分:3)
从\ r \ n而不是\ n
执行此操作 像这样<?php
print("myname is \r\n sumit");
?>`
输出看起来像......
我的名字是 SUMIT
答案 2 :(得分:3)
\n
被忽略,因为如documentation中所述,第一个参数是format
应该打印,其余参数是此格式可以使用的值,例如:
$num = 2.12;
printf("formatted value = %.1f", $num);
// ^^^^^^^^^^^^^^^^^^^^^^ ^^^^
// | |
// format |
// value which can be put in format in place of `%X` where `X` represents type
将打印formatted value = 2.1
因为格式为%.1f
,您决定在浮点数后的点后打印一个数字。
要使格式使用字符串参数,您需要使用%s
占位符,例如print("hello %s world","beautiful")
,beautiful
代替%s
并打印hello beautiful world
}。
现在回到你的代码。在printf($variable, "\n");
$variable
表示格式,并且很可能在其中没有any %s
字符串,这样可以让您以此格式使用"\n"
参数。这意味着"\n"
将被忽略(未在格式中使用),因此不会打印。
像这样的代码
printf("Hello\n");
或
printf($variable);
printf("\n");
没有此问题,因为它明确使用\n
格式应该打印。
所以看起来你可能想要使用
printf("%s\n", $value)
这似乎有点矫枉过正,因为您可以使用.
运算符简单地连接字符串并将其打印出来,如
print($value."\n")
或
echo $value."\n";
答案 3 :(得分:2)
您错误地使用了printf()
。您需要使用%s
来表示换行符的放置位置:
printf($variable . "%s", "\n");