我有一个需要移动的网站,但由于某些旧的 PHP 功能,它似乎不适用于 PHP7.3.12,并且这次不能选择旧的 5.x :(
首先我有一个错误:
已弃用:__autoload() 已弃用,在第 3 行的 /var/www/vhosts/dddd.eu/bbbgg.cdddd.eu/in_site/autoload.php 中使用 spl_autoload_register() 代替
致命错误:未捕获错误:调用 /var/www/vhosts/dddd.eu/bbbgg.cdddd.eu/in_site/core/libraries/sql.class/sql.class.php:2 中的未定义函数 sg_load() 堆栈跟踪: #0 /var/www/vhosts/dddd.eu/bbbgg.cdddd.eu/in_site/autoload.php(83): require_once() #1 [内部函数]: __autoload('SQL') #2 /var/ www/vhosts/dddd.eu/bbbgg.cdddd.eu/in_site/config.php(70): spl_autoload_call('SQL') #3 /var/www/vhosts/dddd.eu/bbbgg.cdddd.eu/index.html php(14): include_once('/var/www/vhosts...') #4 {main} 被扔进 /var/www/vhosts/dddd.eu/bbbgg.cdddd.eu/in_site/core/libraries/sql第 2 行的 .class/sql.class.php
我将第 3 行从__autoload($ClassName)改为spl_autoload_register($ClassName)
这给我带来了一个新错误:
致命错误:无法在第129行的/var/www/vhosts/dddd.eu/bbbgg.cdddd.eu/in_site/autoload.php 中重新声明 spl_autoload_register()
这是 autoload.php 的完整代码 - https://pastebin.com/1Qj3pFPH
什么会导致这个问题?
如果我只是查看您的代码,我会注意到您将其__autoload用作可调用的自动加载函数的名称。我不会使用该名称,因为它过去曾被使用过,并且如您所见,可能会触发弃用错误。您也不能替换它,spl_autoload_register因为这是一个现有的 PHP 函数。所以试试这个:
<?php
function myAutoload($ClassName)
{
.... code ....
}
spl_autoload_register('myAutoload');
Run Code Online (Sandbox Code Playgroud)
检查spl_autoload_register()的 PHP 手册也很有用。
| 归档时间: |
|
| 查看次数: |
5239 次 |
| 最近记录: |