atuser.com 网站关闭通知
大家有缘再聚, 多谢大家的长年支持与守护.

php 8代码兼容问题研究

分类
Qampp手册
更新时间
2020-07-14 14:19:18

终于在代码层看到了php8的兼容问题了。 如图片提示。

基本上是参数的定义问题, 请运行以下代码。


class A{
    public static function utf8StrRev($str, $setbom=false, $forcertl=false, $isunicode=true, &$currentfont) {
        
    }
    
    protected function getArguments($callable=null, $arguments){


    }


    public static function setPageBoxes($page, $type, $llx, $lly, $urx, $ury, $points=false, $k, $pagedim=array()) {
    
    }


    public static function fixHTMLCode($html, $default_css='', $tagvs='', $tidy_options='', &$tagvspaces) {
    
    }
}


function Te($callable=null, $arguments){


}


$a = new A();
exit();


然后你就会看到错误提示:

Deprecated: Required parameter $currentfont follows optional parameter $setbom in D:\Qampp\htdocs\test.php on line 12

Deprecated: Required parameter $arguments follows optional parameter $callable in D:\Qampp\htdocs\test.php on line 16

Deprecated: Required parameter $k follows optional parameter $points in D:\Qampp\htdocs\test.php on line 20

Deprecated: Required parameter $tagvspaces follows optional parameter $default_css in D:\Qampp\htdocs\test.php on line 24

Deprecated: Required parameter $arguments follows optional parameter $callable in D:\Qampp\htdocs\test.php on line 29


大致上理解就是, 前面参数是可省略的, 为什么后面还会跟一个必须参数。

这是逻辑问题, 哈哈, 具体怎么解决呢。


解决方法

1: 保持规范写法, 可省略(可选择)的参数必须放在后面

2: 默认参数可定义成必须参数, 由代码来控制兼容所有情况。($a,$b)

3: 关闭忽略错误显示。


Qampp 相关下载信息

Qampp APACE/PHP一键全系列环境包 : 64位, 32位,
Qampp Qampp 兼容版(winXP, win2003等) XP兼容版

数据下载由网络决定

腾讯云 / 腾讯AI / 腾讯开源 / 南沙新区 / 信用
分享工作室[粤ICP备16004795号-2] Date:2020-10-29 01:15:48(UTC) RunTime:0.013