PHP入门需掌握$_POST取参、mysqli查库、echo输出HTML;熟练变量类型差异、数组操作、字符串处理;理解请求生命周期、会用预处理防SQL注入;开启错误报告调试。

PHP 要会什么?不是学完所有语法才算入门,而是能用 $_POST 接参、用 mysqli 查数据库、把 echo 出来的 HTML 渲染到浏览器——这就已经跨过“不会”的门槛了。
变量、数组、字符串操作是每天都在写的底层动作
PHP 的变量不用声明类型,但得清楚什么时候是 null、什么时候是空字符串 ''、什么时候是 false,三者在 if 判断里表现不同。数组是核心数据结构,foreach 遍历、array_merge 合并、in_array 查找必须手熟。字符串处理别总依赖 str_replace,注意 trim 默认只去首尾空白,htmlspecialchars 要在输出前调用防 XSS。
-
$_GET和$_POST是超全局变量,不是函数,不能加括号调用 - 关联数组键名带引号(
$arr['name']),数字索引可不带($arr[0]),但统一用引号更安全 - 拼接字符串用点号
.,不是加号+;加号会尝试转成数字相加,容易出错
理解 PHP 生命周期和常见运行模式
PHP 是请求响应模型:一次 HTTP 请求 → 启动 PHP 解释器 → 执行脚本 → 输出内容 → 进程结束。这意味着没有“常驻内存”的变量(除非用 static 或外部存储),session_start() 必须在任何输出之前调用,否则报 Cannot send session cache limiter 错误。
- CLI 模式下没有
$_GET/$_POST,参数走$argv - Web 服务器(如 Apache + mod_php)和 PHP-FPM 模式下,
php.ini加载路径可能不同,用phpinfo()确认实际生效配置 -
include和require区别在于失败时是否中止脚本;_once版本防止重复加载同一文件
数据库操作至少要能写安全的增删改查
别碰 mysql_* 函数(已废弃),直接上 mysqli 或 PDO。重点不是学会所有方法,而是建立“参数不能拼进 SQL 字符串”的条件反射。用预处理语句(prepare + bind_param)是底线,哪怕只是本地小项目。
立即学习“PHP免费学习笔记(深入)”;
-
mysqli_query($conn, "SELECT * FROM user WHERE id = $_GET[id]")—— 这种写法等于给黑客递刀 -
mysqli_real_escape_string不是万能解药,它只对字符串有效,且无法防御所有上下文(比如 ORDER BY 后的字段名) - 查询结果要用
mysqli_fetch_assoc()或fetch()(PDO)取出行,不是直接 echo 结果资源
错误调试不能只靠白屏或“500 error”
开发时务必打开错误报告:error_reporting(E_ALL); ini_set('display_errors', '1');。生产环境关掉 display_errors,但要确保 log_errors 开启,并检查 error_log 路径权限。遇到白屏,第一反应不是代码写错了,而是看 PHP 是否报了致命错误(比如调用未定义函数),这类错误默认不显示,需主动配置。
-
Notice类错误(如访问未定义数组键)默认不中断执行,但可能掩盖逻辑问题,建议开发阶段全开 -
var_dump()比echo有用得多,尤其看数组/对象结构;配合die()可快速打断流程定位问题位置 - 函数不存在?先确认大小写:PHP 函数名不区分大小写,但自定义函数和类方法名区分
真正卡住人的往往不是“没学过”,而是某个 session_start() 前有空格、某个 require 路径少了个 ../、或者 PDO 连接时把 localhost 写成 127.0.0.1 导致权限不一致——这些细节比语法本身更消耗时间。











