PHP学习应从运行首个网页开始,用内置服务器快速输出内容;数据库操作只用PDO或mysqli并设异常模式;先手写小应用再学框架;注意超时、内存及上传限制等运行边界配置。
PHP 不需要从“学语言”开始,得从“跑通一个能访问的页面”开始。其他路径容易卡在环境、配置、过时教程上,半年还在写 echo "hello world"。
别装 XAMPP、WAMP 或自己编译。直接用 PHP 内置服务器,5 分钟内看到输出:
php -S localhost:8000 -t ./public
然后在 ./public/index.php 里写:
打开 http://localhost:8000 就行。遇到 Command not found?说明 PHP 没装或没进 PATH——这时候才该去官网下安装包,不是去翻“PHP 环境搭建史上最全教程”。
mysql_connect() 和过时的数据库操作方式现在写 PHP 连 MySQL,只用 PDO 或 mysqli(面向对象风格)。mysql_* 函数早在 PHP 7.0 就被删了,但大量老教程还在教。

正确写法示例(PDO):
$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$stmt = $pdo->query('SELECT id, name FROM users');
while ($row = $stmt->fetch()) {
echo $row['name'];
}
try/catch 包裹 PDO 初始化,否则连接失败就白屏PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 要设,不然错误静默吞掉mysql_real_escape_string() 做防注入——参数化查询才是唯一正解框架是为解决重复问题而生的,不是学习 PHP 的入口。你连 $_POST 怎么安全取值、session_start() 为什么总报 header already sent 都不清楚,框架只会放大困惑。
建议路线:
index.php 里用 switch($_GET['a']) 分发)Db.php 类,理解依赖和封装monolog/monolog 记日志,vlucas/phpdotenv 管理配置本地跑得好,上线就 500?大概率是这些配置没调:
max_execution_time(默认 30 秒)——长任务要 set_time_limit(0) 或改 php.inimemory_limit(默认 128M)——处理大 Excel 或图片时容易爆,ini_set('memory_limit', '512M') 只是临时补丁upload_max_filesize 和 post_max_size 必须同时调,且后者 ≥ 前者phpinfo() 查当前生效的配置,别只改错 ini 文件很多“PHP 学不会”的人,其实卡在这些看不见的边界上,而不是语法本身。