10天学会PHP不现实,但可写出能跑通的Web小工具、理解请求生命周期、避开常见陷阱;关键在掌握$_GET、$_POST、mysqli和模板拼接,严防未校验变量、连接失败及短标签禁用等问题。
10天学会 PHP 不现实,但 10 天内写出能跑通的 Web 小工具、理解请求生命周期、避开最常见陷阱,是可行的——前提是跳过“从零造轮子”式教学,直奔 $_GET、$_POST、mysqli 和模板拼接这四块硬骨头。
echo $_GET['id']直接报错?变量未校验是默认行为PHP 不会自动检查 $_GET 里有没有 id,直接读取会触发 Notice: Undefined index。这不是语法错误,但上线后可

isset($_GET['id']) 或 filter_input(INPUT_GET, 'id', FILTER_SANITIZE_NUMBER_INT) 包一层$_GET 和 $_POST 是超全局数组,但不是“安全全局”——它们的内容完全由用户控制error_reporting(E_ALL);,否则这类 Notice 会被静默吞掉mysqli_connect()连不上数据库?先确认端口和用户权限本地环境(如 XAMPP/MAMP)默认 MySQL 端口是 3306,但 Docker 或云数据库常改端口;更常见的是 root 用户被禁用了远程连接,或密码含特殊字符没转义。
mysql -h 127.0.0.1 -P 3306 -u root -p,成功再写 PHPmysqli_connect_error() 返回字符串,别只写 or die("fail"),要输出它$、@ 等符号?用单引号包裹字符串,避免 PHP 变量解析干扰突然不渲染?检查短标签是否启用很多教程写 = $name ?>,但默认配置下 short_open_tag = Off,会导致整段 PHP 被当纯文本输出。
phpinfo(); 页面搜 short_open_tag,或运行 php -i | grep short_open_tag
,避免模板引擎冲突php.ini 后记得重启 Web 服务(Apache/Nginx),光刷新页面没用真正的卡点不在语法,而在“请求进来时 PHP 怎么拿到数据”“响应出去时浏览器怎么解析 HTML+PHP 混排”“错误信息藏在哪一行哪一列”。把这三个问题盯死,比背十遍 foreach 语法有用得多。