PHP - print

有些话、适合烂在心里 提交于 2019-12-06 11:42:39

(PHP4, PHP5, PHP7)

print - 输出一个字符串

说明:

int print ( string $arg )

输出arg

print不是一个真实函数,它只是一种语言结构,因此不强制要求对参数列表使用括号括起来。

它与echo主要不同在于print只接收单个参数且总是返回1

参数:

arg - 输入数据

返回值:

总是返回1

实例:

#1 打印实例

<?php
print("Hello World");

print "print() also works without parentheses."; //无括号时仍然可用

print "This spans
multiple lines. The newlines will be
output as well"; // 可分行输出

print "This spans\nmultiple lines. The newlines will be\noutput as well."; // 使用\n分行

print "escaping characters is done \"Like this\"."; // 需要显示双引号字符"时需要在前面加反斜杠\

// 可在print语句内使用变量
$foo = "foobar";
$bar = "barbaz";

print "foo is $foo"; // $foo表示foobar

// 还可以使用数组
$bar = array("value" => "foo");

print "this is {$bar['value']} !"; // 这里$bar['value']表示foo

// 使用单引号只会打印出变量名,而不会打印出值
print 'foo is $foo'; // 输出是:foo is $foo

// 若不需要使用其他任何字符,可以只打印变量
print $foo;          // 输出是:foobar

print <<<END
This uses the "here document" syntax to output
multiple lines with $variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon no extra whitespace!
END;
?>

注意:

由于只是一种语言结构而非函数,因此不能叫做使用变量函数。

还可参考:

echo - 输出一或多个字符串

printf() - 输出格式化字符串

flush() - 刷新系统输出缓冲区

Heredoc 语法

用户注释:

#1 .net用户实例:

当使用print时需要格外小心,由于print只是一种语言结构而非函数,不强求将参数用括号括起来。

实际上,使用括号能与函数语法相混淆且应该将它省略。

大多数会做类似如下操作:

<?php
    if (print("foo") && print("bar")) {
        // "foo" and "bar" had been printed
    }
?>

但是由于参数不强制使用括号括起来,因此它们后面部分也就有可能会被解析成为参数的一部分,这意味着第一个print输出可能为如下:

("foo") && print("bar")

而第二个print参数输出为:

 ("bar")

以上都会产生错误。

所以若想要得到期望的结果,需要写成如下方式:

<?php
    if ((print "foo") && (print "bar")) {
        // "foo" and "bar" had been printed
    }
?>

类似以上问题在参考网页还有很多。

参考网页

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!