'''''''''''''''''''''''''''''这个写法需要 PHP 7.1+,在 PHP 7.0 及以下会直接 fatal error。
修复方法
把 4 个文件里的所有 [$a, $b, $c] = ... 改成 list($a, $b, $c) = ...。
需要改的文件和位置:
index.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, $page_size);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, $page_size);
all.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, 40);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, 40);
articles.php 找到:
php
[$page_articles, $page, $total_pages] = paginate($all_articles, 20);
改成:
php
list($page_articles, $page, $total_pages) = paginate($all_articles, 20);
ranking.php 找到:
php
[$page_rankings, $page, $total_pages] = paginate($all_rankings, 20);
改成:
php
list($page_rankings, $page, $total_pages) = paginate($all_rankings, 20);
shop.php 找到:
php
[$page_products, $page, $total_pages] = paginate($all_products, $page_size);
改成:
php
list($page_products, $page, $total_pages) = paginate($all_products, $page_size);
downloads.php 找到:
php
[$page_items, $page, $total_pages] = paginate($all_items, 20);
改成:
php
list($page_items, $page, $total_pages) = paginate($all_items, 20);
search.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, 20);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, 20);
额外注意:其它 PHP 7.1+ 特性
如果你确实是 PHP 7.0,检查以下地方是否也报错:
inc/bootstrap.php 里的 paginate 函数(PHP 5.4+ 就支持,没问题)
inc/header.php 的 $active_nav ?? '' → ?? 是 PHP 7.0+,如果你 PHP 5.6 会报错,需要改成:
php
$__active = isset($active_nav) ? $active_nav : '';
建议:如果 PHP 版本 < 7.0,升级到 PHP 7.4 或 8.x 是更好的选择(现在几乎没理由跑 7.0 以下)。
🛠️ 方案 C:检查文件是否齐全
在服务器上,你项目的根目录,应该能看到这些:
text
你的站点根目录/ ├── inc/ │ ├── config.php ← 必须有 │ ├── bootstrap.php ← 必须有 │ ├── head.php ← 必须有 │ ├── header.php ← 必须有 │ └── footer.php ← 必须有 ├── js/ │ ├── app.js ← 必须有(第 1 批新增) │ └── ...(其它后台 JS) ├── css/ ├── data.sqlite ← 数据库 ├── index.php ← 第 5 批新增 ├── all.php ← 第 5 批 ├── articles.php ← 第 4 批 ├── downloads.php ← 第 4 批 ├── ranking.php ← 第 4 批 ├── shop.php ← 第 4 批 ├── copy.php ← 第 2 批 ├── download.php ← 第 2 批 ├── rankingview.php ← 第 3 批 ├── productpage.php ← 第 3 批 ├── article.php ← 第 2 批(覆盖旧文件) ├── search.php ← 第 5 批 ├── api.php └── ...
最常见的低级错误:
- ❌
inc/建在了错误目录(比如建在js/里) - ❌ 文件大小写不对(Linux 区分大小写:
Bootstrap.php≠bootstrap.php) - ❌ 文件名打错:
bootstrap.php写成了bootstrap.php.php(Windows 会自动隐藏后缀) - ❌ 用 FTP 上传时是二进制模式,PHP 文件变成乱码
验证:在浏览器访问:
text
你的域名/inc/bootstrap.php
- 如果显示空白 → 正常(因为 bootstrap 只定义函数不输出)
- 如果显示 404 → 文件不在
- 如果显示 PHP 源码 → PHP 没解析(Apache 没配好)
🛠️ 方案 D:数据库权限问题
如果是 Linux 服务器,SSH 上去执行:
bash
# 找到你的站点目录,比如 /var/www/html cd /var/www/html # 检查数据库文件是否存在 ls -la data.sqlite ls -la data.sqlite-wal data.sqlite-shm 2>/dev/null # 检查 inc 目录权限 ls -la inc/ # 给运行 PHP 的用户读写权限(通常是 www-data) sudo chown -R www-data:www-data . sudo chmod 755 inc sudo chmod 644 inc/*.php sudo chmod 664 data.sqlite sudo chmod 664 data.sqlite-wal data.sqlite-shm 2>/dev/null # 目录要可写(SQLite 需要写 WAL 文件) sudo chmod 775 .
Nginx 或 Apache 的 PHP 错误日志:
bash
# Nginx + PHP-FPM sudo tail -n 50 /var/log/nginx/error.log sudo tail -n 50 /var/log/php*-fpm.log # Apache sudo tail -n 50 /var/log/apache2/error.log
日志里通常有精确的错误信息。
🚑 应急:先退回旧页面
如果你现在站点无法访问,想快速恢复:
- 把
index.php重命名为index.php.bak - 把旧
index.html(如果你还留着)恢复成index.html - 访问
你的域名/index.html立即恢复
旧文件如果之前删了,从备份恢复。
📝 请告诉我以下信息,我可以精确诊断
回复我:
- F12 → Console 里的红色报错(截图或复制文字)
- F12 → Network → 点 index.php → Response 标签里的内容
- PHP 版本(
php -v或info.php输出) - 你装了哪几批(是刚装完第 5 批,还是之前批次还没装?)
有这 4 项我能立刻定位问题。
💡 我的猜测
80% 是方案 B(PHP 版本 < 7.1 用了数组解构)。
快速验证:在项目根目录新建 test.php:
php
<?php list($a, $b) = [1, 2]; echo "list OK<br>"; [$c, $d] = [3, 4]; echo "array destructuring OK<br>";
访问 test.php:
- 显示两行 → PHP 版本 ≥ 7.1,问题在别处
- 只显示 "list OK" → PHP 版本 < 7.1,用方案 B 修复
修复完之后,删掉 test.php。
这个写法需要 PHP 7.1+,在 PHP 7.0 及以下会直接 fatal error。
修复方法
把 4 个文件里的所有 [$a, $b, $c] = ... 改成 list($a, $b, $c) = ...。
需要改的文件和位置:
index.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, $page_size);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, $page_size);
all.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, 40);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, 40);
articles.php 找到:
php
[$page_articles, $page, $total_pages] = paginate($all_articles, 20);
改成:
php
list($page_articles, $page, $total_pages) = paginate($all_articles, 20);
ranking.php 找到:
php
[$page_rankings, $page, $total_pages] = paginate($all_rankings, 20);
改成:
php
list($page_rankings, $page, $total_pages) = paginate($all_rankings, 20);
shop.php 找到:
php
[$page_products, $page, $total_pages] = paginate($all_products, $page_size);
改成:
php
list($page_products, $page, $total_pages) = paginate($all_products, $page_size);
downloads.php 找到:
php
[$page_items, $page, $total_pages] = paginate($all_items, 20);
改成:
php
list($page_items, $page, $total_pages) = paginate($all_items, 20);
search.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, 20);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, 20);
额外注意:其它 PHP 7.1+ 特性
如果你确实是 PHP 7.0,检查以下地方是否也报错:
inc/bootstrap.php 里的 paginate 函数(PHP 5.4+ 就支持,没问题)
inc/header.php 的 $active_nav ?? '' → ?? 是 PHP 7.0+,如果你 PHP 5.6 会报错,需要改成:
php
$__active = isset($active_nav) ? $active_nav : '';
建议:如果 PHP 版本 < 7.0,升级到 PHP 7.4 或 8.x 是更好的选择(现在几乎没理由跑 7.0 以下)。
🛠️ 方案 C:检查文件是否齐全
在服务器上,你项目的根目录,应该能看到这些:
text
你的站点根目录/ ├── inc/ │ ├── config.php ← 必须有 │ ├── bootstrap.php ← 必须有 │ ├── head.php ← 必须有 │ ├── header.php ← 必须有 │ └── footer.php ← 必须有 ├── js/ │ ├── app.js ← 必须有(第 1 批新增) │ └── ...(其它后台 JS) ├── css/ ├── data.sqlite ← 数据库 ├── index.php ← 第 5 批新增 ├── all.php ← 第 5 批 ├── articles.php ← 第 4 批 ├── downloads.php ← 第 4 批 ├── ranking.php ← 第 4 批 ├── shop.php ← 第 4 批 ├── copy.php ← 第 2 批 ├── download.php ← 第 2 批 ├── rankingview.php ← 第 3 批 ├── productpage.php ← 第 3 批 ├── article.php ← 第 2 批(覆盖旧文件) ├── search.php ← 第 5 批 ├── api.php └── ...
最常见的低级错误:
- ❌
inc/建在了错误目录(比如建在js/里) - ❌ 文件大小写不对(Linux 区分大小写:
Bootstrap.php≠bootstrap.php) - ❌ 文件名打错:
bootstrap.php写成了bootstrap.php.php(Windows 会自动隐藏后缀) - ❌ 用 FTP 上传时是二进制模式,PHP 文件变成乱码
验证:在浏览器访问:
text
你的域名/inc/bootstrap.php
- 如果显示空白 → 正常(因为 bootstrap 只定义函数不输出)
- 如果显示 404 → 文件不在
- 如果显示 PHP 源码 → PHP 没解析(Apache 没配好)
🛠️ 方案 D:数据库权限问题
如果是 Linux 服务器,SSH 上去执行:
bash
# 找到你的站点目录,比如 /var/www/html cd /var/www/html # 检查数据库文件是否存在 ls -la data.sqlite ls -la data.sqlite-wal data.sqlite-shm 2>/dev/null # 检查 inc 目录权限 ls -la inc/ # 给运行 PHP 的用户读写权限(通常是 www-data) sudo chown -R www-data:www-data . sudo chmod 755 inc sudo chmod 644 inc/*.php sudo chmod 664 data.sqlite sudo chmod 664 data.sqlite-wal data.sqlite-shm 2>/dev/null # 目录要可写(SQLite 需要写 WAL 文件) sudo chmod 775 .
Nginx 或 Apache 的 PHP 错误日志:
bash
# Nginx + PHP-FPM sudo tail -n 50 /var/log/nginx/error.log sudo tail -n 50 /var/log/php*-fpm.log # Apache sudo tail -n 50 /var/log/apache2/error.log
日志里通常有精确的错误信息。
🚑 应急:先退回旧页面
如果你现在站点无法访问,想快速恢复:
- 把
index.php重命名为index.php.bak - 把旧
index.html(如果你还留着)恢复成index.html - 访问
你的域名/index.html立即恢复
旧文件如果之前删了,从备份恢复。
📝 请告诉我以下信息,我可以精确诊断
回复我:
- F12 → Console 里的红色报错(截图或复制文字)
- F12 → Network → 点 index.php → Response 标签里的内容
- PHP 版本(
php -v或info.php输出) - 你装了哪几批(是刚装完第 5 批,还是之前批次还没装?)
有这 4 项我能立刻定位问题。
💡 我的猜测
80% 是方案 B(PHP 版本 < 7.1 用了数组解构)。
快速验证:在项目根目录新建 test.php:
php
<?php list($a, $b) = [1, 2]; echo "list OK<br>"; [$c, $d] = [3, 4]; echo "array destructuring OK<br>";
访问 test.php:
- 显示两行 → PHP 版本 ≥ 7.1,问题在别处
- 只显示 "list OK" → PHP 版本 < 7.1,用方案 B 修复
修复完之后,删掉 test.php。
这个写法需要 PHP 7.1+,在 PHP 7.0 及以下会直接 fatal error。
修复方法
把 4 个文件里的所有 [$a, $b, $c] = ... 改成 list($a, $b, $c) = ...。
需要改的文件和位置:
index.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, $page_size);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, $page_size);
all.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, 40);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, 40);
articles.php 找到:
php
[$page_articles, $page, $total_pages] = paginate($all_articles, 20);
改成:
php
list($page_articles, $page, $total_pages) = paginate($all_articles, 20);
ranking.php 找到:
php
[$page_rankings, $page, $total_pages] = paginate($all_rankings, 20);
改成:
php
list($page_rankings, $page, $total_pages) = paginate($all_rankings, 20);
shop.php 找到:
php
[$page_products, $page, $total_pages] = paginate($all_products, $page_size);
改成:
php
list($page_products, $page, $total_pages) = paginate($all_products, $page_size);
downloads.php 找到:
php
[$page_items, $page, $total_pages] = paginate($all_items, 20);
改成:
php
list($page_items, $page, $total_pages) = paginate($all_items, 20);
search.php 找到:
php
[$page_items, $page, $total_pages] = paginate($items, 20);
改成:
php
list($page_items, $page, $total_pages) = paginate($items, 20);
额外注意:其它 PHP 7.1+ 特性
如果你确实是 PHP 7.0,检查以下地方是否也报错:
inc/bootstrap.php 里的 paginate 函数(PHP 5.4+ 就支持,没问题)
inc/header.php 的 $active_nav ?? '' → ?? 是 PHP 7.0+,如果你 PHP 5.6 会报错,需要改成:
php
$__active = isset($active_nav) ? $active_nav : '';
建议:如果 PHP 版本 < 7.0,升级到 PHP 7.4 或 8.x 是更好的选择(现在几乎没理由跑 7.0 以下)。
🛠️ 方案 C:检查文件是否齐全
在服务器上,你项目的根目录,应该能看到这些:
text
你的站点根目录/ ├── inc/ │ ├── config.php ← 必须有 │ ├── bootstrap.php ← 必须有 │ ├── head.php ← 必须有 │ ├── header.php ← 必须有 │ └── footer.php ← 必须有 ├── js/ │ ├── app.js ← 必须有(第 1 批新增) │ └── ...(其它后台 JS) ├── css/ ├── data.sqlite ← 数据库 ├── index.php ← 第 5 批新增 ├── all.php ← 第 5 批 ├── articles.php ← 第 4 批 ├── downloads.php ← 第 4 批 ├── ranking.php ← 第 4 批 ├── shop.php ← 第 4 批 ├── copy.php ← 第 2 批 ├── download.php ← 第 2 批 ├── rankingview.php ← 第 3 批 ├── productpage.php ← 第 3 批 ├── article.php ← 第 2 批(覆盖旧文件) ├── search.php ← 第 5 批 ├── api.php └── ...
最常见的低级错误:
- ❌
inc/建在了错误目录(比如建在js/里) - ❌ 文件大小写不对(Linux 区分大小写:
Bootstrap.php≠bootstrap.php) - ❌ 文件名打错:
bootstrap.php写成了bootstrap.php.php(Windows 会自动隐藏后缀) - ❌ 用 FTP 上传时是二进制模式,PHP 文件变成乱码
验证:在浏览器访问:
text
你的域名/inc/bootstrap.php
- 如果显示空白 → 正常(因为 bootstrap 只定义函数不输出)
- 如果显示 404 → 文件不在
- 如果显示 PHP 源码 → PHP 没解析(Apache 没配好)
🛠️ 方案 D:数据库权限问题
如果是 Linux 服务器,SSH 上去执行:
bash
# 找到你的站点目录,比如 /var/www/html cd /var/www/html # 检查数据库文件是否存在 ls -la data.sqlite ls -la data.sqlite-wal data.sqlite-shm 2>/dev/null # 检查 inc 目录权限 ls -la inc/ # 给运行 PHP 的用户读写权限(通常是 www-data) sudo chown -R www-data:www-data . sudo chmod 755 inc sudo chmod 644 inc/*.php sudo chmod 664 data.sqlite sudo chmod 664 data.sqlite-wal data.sqlite-shm 2>/dev/null # 目录要可写(SQLite 需要写 WAL 文件) sudo chmod 775 .
Nginx 或 Apache 的 PHP 错误日志:
bash
# Nginx + PHP-FPM sudo tail -n 50 /var/log/nginx/error.log sudo tail -n 50 /var/log/php*-fpm.log # Apache sudo tail -n 50 /var/log/apache2/error.log
日志里通常有精确的错误信息。
🚑 应急:先退回旧页面
如果你现在站点无法访问,想快速恢复:
- 把
index.php重命名为index.php.bak - 把旧
index.html(如果你还留着)恢复成index.html - 访问
你的域名/index.html立即恢复
旧文件如果之前删了,从备份恢复。
📝 请告诉我以下信息,我可以精确诊断
回复我:
- F12 → Console 里的红色报错(截图或复制文字)
- F12 → Network → 点 index.php → Response 标签里的内容
- PHP 版本(
php -v或info.php输出) - 你装了哪几批(是刚装完第 5 批,还是之前批次还没装?)
有这 4 项我能立刻定位问题。
💡 我的猜测
80% 是方案 B(PHP 版本 < 7.1 用了数组解构)。
快速验证:在项目根目录新建 test.php:
php
<?php list($a, $b) = [1, 2]; echo "list OK<br>"; [$c, $d] = [3, 4]; echo "array destructuring OK<br>";
访问 test.php:
- 显示两行 → PHP 版本 ≥ 7.1,问题在别处
- 只显示 "list OK" → PHP 版本 < 7.1,用方案 B 修复
修复完之后,删掉 test.php。