自学php的关键是跑通最小闭环:装环境、写echo、改变量、刷新见结果;卡在环境配置(如phpstudy端口冲突、权限不足、post获取失败、mysql连接问题)是放弃主因,需逐项验证反馈。

直接说结论:自学 PHP 不靠“系统教程”,靠“能跑通的最小闭环”——装好环境、写一行 echo、改一个变量、刷新页面看到结果,这四步走通,信心就立住了;卡在第一步(环境起不来),90% 的人会放弃。
phpStudy 启动失败或 localhost 打不开怎么办
这不是你学不会,是集成环境没对上当前系统权限或端口冲突。Windows 10/11 默认启用了 IIS 或 Skype 占用 80 端口,Apache 就会启动失败,状态显示红色叉。
- 先打开 phpStudy 的“设置”→“其他选项设置”,把 Apache 端口改成
8080(或其他未被占用的,比如8000) - 再点“启动”,看是否变绿;如果还是红,右键任务栏 phpStudy 图标 → “以管理员身份运行”
- 浏览器访问别输
http://localhost,改输http://localhost:8080 - Mac 或 Linux 用户别硬套 phpStudy,直接用
brew install php@8.3 && brew services start php@8.3更稳,根目录默认是/usr/local/var/www
$_POST 获取不到表单数据的三个常见原因
新手写完登录表单,var_dump($_POST) 却输出空数组,不是语法错,而是 HTTP 协议和 PHP 配置的细节没对齐。
- 表单
<form></form>必须带method="post",且action指向的是 .php 文件(不能是 .html) - PHP 文件里不能有输出(包括空格、BOM 头、
echo前的换行),否则header()会失败,导致$_POST清空——把<?php放在文件最开头,前面不要有任何字符 - 检查 php.ini 中
variables_order = "EGPCS"是否包含P(代表 POST),以及post_max_size = 8M是否过小(上传文件时容易触发)
用 mysqli_connect 连不上 MySQL 的真实排查路径
报错 mysqli_connect(): (HY000/1045): Access denied for user... 或直接空白页,往往不是密码错了,而是用户权限或 socket 路径不对。
- phpStudy 默认 MySQL 用户是
root,密码为空(不是123456,也不是安装时随便设的),连不上先试空密码 - Linux/macOS 下,
localhost会让 mysqli 走 TCP/IP,但实际 MySQL 可能只监听 socket;换成127.0.0.1或显式指定socket参数 - 用命令行验证:
mysql -u root -p -h 127.0.0.1能进,说明服务正常;进不去就先解决 MySQL 本身,别急着改 PHP 代码 - 连接成功后立刻加错误处理:
if (!$conn) { die("连接失败: " . mysqli_connect_error()); },不然失败静默,你根本不知道哪断了
真正卡住人的,从来不是 echo 或 foreach 怎么写,而是环境启动、请求路径、配置项开关这些“看不见的线”。每一步都确认有反馈(绿色对勾、var_dump 输出、MySQL 命令行返回),比抄十遍完整 CMS 代码有用得多。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











