PHP最常用输出方式是echo和print,二者均为语言结构;日常优先用echo,调试用var_dump()看清变量本质,模板中注意短标签配置,输出HTML前须防XSS。

PHP里最常用的输出方式是 echo 和 print
echo 不是函数,是语言结构,所以不用括号也能用;print 也是语言结构,但有返回值(总是 1),实际开发中几乎没人靠它判断逻辑。日常输出字符串、变量、表达式结果,优先用 echo。
常见写法:
echo $name; echo "Hello, ", $name, "!"; echo "Age: " . $age;
注意:echo 支持多个参数(用逗号分隔),而 . 是拼接操作符——逗号不触发类型转换,点号会强制转字符串,性能上逗号略快一点。
调试时别只用 echo,var_dump() 才能看清变量本质
单纯 echo $arr 只会输出 Array,啥也看不到;echo $obj 可能报错或空输出。这时候必须换 var_dump():
立即学习“PHP免费学习笔记(深入)”;
var_dump($user); var_dump($config['db']['host']);
它会显示类型、长度、结构,甚至嵌套层级。开发阶段建议配合 exit; 使用,避免后续代码干扰输出:
var_dump($_POST); exit;
线上环境务必删掉或注释掉 var_dump(),否则可能泄露敏感数据。
模板里混写 PHP 变量,记得检查短标签是否开启
如果写 = $title ?> 报错,大概率是服务器禁用了短标签(short_open_tag = Off)。这时只能老实用 <?php echo $title; ?>。
检查方法:建个 info.php,内容为 <?php phpinfo(); ?>,浏览器打开后搜 short_open_tag。不建议为了省几个字符去改 php.ini,尤其在共享主机或 Docker 环境里容易出兼容问题。
另外,= 等价于 <?php echo,仅支持单个表达式,不能写 = $a; $b; ?> 这种多语句。
输出 HTML 内容前,小心 XSS 和编码问题
直接 echo $_GET['q'] 是高危操作,用户传 <script>alert(1)</script> 就执行了。必须过滤:
- 纯文本展示用
htmlspecialchars($str, ENT_QUOTES, 'UTF-8') - 输出到 HTML 属性里(比如
value="= $val ?>"),一定要加ENT_QUOTES参数,否则单引号逃逸失败 - 如果变量本该是数字,就用
(int)$id或filter_var($id, FILTER_VALIDATE_INT)强制校验
别依赖前端 JS 过滤,后端输出那一刻就要决定“这串字符到底以什么身份被浏览器解析”。



















