PHP新手可用内置服务器php -S快速启动,无需Apache;输出选echo(多参数)、print(单参数且返回1)、var_dump(调试查类型);数组用[]定义,foreach修改需引用&$value;获取GET/POST务必用isset或??避免Notice。

PHP 新手不用先装 Apache、不用配虚拟主机,用 PHP 自带的内置服务器就能跑起来——这是最短路径。
怎么快速验证 PHP 能不能运行
别急着下载 XAMPP 或 WAMP。先确认系统是否已装 PHP:
- 终端输入
php -v,看到版本号(如PHP 8.2.12)说明已就绪 - 如果提示
command not found,macOS 用brew install php,Windows 下载官方 ZIP 包并把php.exe所在目录加进PATH - 新建一个
index.php文件,内容只写<?php echo 'Hello'; ?>,保存后执行php -S localhost:8000 - 浏览器打开
http://localhost:8000,看到 Hello 就成功了
这个 php -S 是 PHP 5.4+ 内置的开发服务器,不依赖 Apache/Nginx,适合写 demo 和学语法阶段。
echo、print、var_dump 该怎么选
新手常卡在“输出”这一步,不是功能不会,是不知道哪个该用、什么时候用错:
立即学习“PHP免费学习笔记(深入)”;
-
echo最常用,支持多参数(echo $a, $b;),但不能返回值,不能用在表达式里 -
print功能和echo几乎一样,但只能单参数,且返回1(所以能用在if (print "x")这种地方,但几乎没人这么干) -
var_dump是调试主力:显示变量类型 + 值,数组嵌套会缩进,对象会列出属性,遇到null或false也能看清 - 别用
print_r替代var_dump查类型——它默认不显示类型,print_r(true)只输出1,而var_dump(true)输出bool(true)
数组定义和 foreach 循环最容易出错的三处
PHP 数组灵活,但新手常因“太灵活”翻车:
- 用
[]创建数组没问题,但别混用array()和[]在同一项目里——不是语法错误,但团队协作时易引发风格争议 -
foreach ($arr as $key => $value)中,如果原数组键是字符串(如['name' => 'Alice']),$key就是'name';如果是数字索引([0 => 'Alice']),$key就是0;别预设它是整数 - 循环中修改数组元素要用
&$value引用,否则改的是副本:foreach ($arr as &$value) { $value .= '!'; },完事记得unset($value)防止后续意外污染
为什么 $_GET 和 $_POST 直接用会报 Notice
直接写 echo $_GET['id']; 在未传参时触发 Notice: Undefined index,这不是警告,是运行时提示,但线上环境通常关了错误显示,导致逻辑静默失败:
- 永远用
isset($_GET['id'])或 PHP 7+ 的空合并操作符$_GET['id'] ?? 'default' -
filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT)比$_GET更安全——它自带过滤和默认值机制,且明确声明输入来源 - 别用
@$_GET['id']屏蔽错误:错误抑制符@会拖慢性能,且掩盖真实问题
环境搭得再快,没养成查 $_GET 是否存在的习惯,后面接数据库查询或文件操作,很容易被空值带崩。



















