PHP 8.1.x中preg_split()传NULL参数报错的修复求助
PHP 8.1.x 下 preg_split 弃用警告修复方案
原代码:
$core = preg_split('@/@', str_replace($_SERVER['DOCUMENT_ROOT'], '', realpath(dirname(__FILE__))), NULL, PREG_SPLIT_NO_EMPTY);
在PHP 8.1.x环境中触发弃用警告:
"Deprecated: preg_split(): Passing null to parameter #3 ($limit)"
修复原因
PHP 8.1开始,preg_split()的第三个参数$limit不再接受NULL值。原代码传NULL是为了不限制分割次数,对应等效行为可以用-1替代,这是PHP官方认可的兼容写法。
修复后的代码
$core = preg_split('@/@', str_replace($_SERVER['DOCUMENT_ROOT'], '', realpath(dirname(__FILE__))), -1, PREG_SPLIT_NO_EMPTY);
补充说明
将NULL替换为-1后,代码逻辑和原行为完全一致:不对分割结果的数量做限制,同时符合PHP 8.1及以上版本的参数规范,不会再触发弃用警告。
内容的提问来源于stack exchange,提问作者user3673405
相关产品推荐
相关产品推荐

