tp3.13升级到 php7

common/common.php 第215 行


function parse_name($name, $type=0) {
    if ($type) {
       // return ucfirst(preg_replace("/_([a-zA-Z])/e", "strtoupper('\\1')", $name));
	   return ucfirst(preg_replace_callback("/_([a-zA-Z])/", function ($match) {
 return  strtoupper($match[1]);
	}, $name));
    } else {
        return strtolower(trim(preg_replace("/[A-Z]/", "_\\0", $name), "_"));
    }
}

其中有Think\Lib\Template\ThinkTemplate.class.php和ThinkPHP\Lib\Core\Dispatcher.class.php两处需要修改

(一)修改Think\Lib\Template\ThinkTemplate.class.php
这一步是为了让模板兼容

请先覆盖Thinkphp论坛解决方案

覆盖完这个文件先别急,这时候运行会发现报错了:

Call to undefined method TagLib::_()

这是因为闭包函数不能直接使用外部变量。

把417行(左右)

 
 
$content = preg_replace_callback($patterns, function($r) {
    return $this->parseXmlTag($tagLib, $tag, $r[1], '');
},$content);```

改为:

 
 

$content = preg_replace_callback($patterns, function($r) use ($tagLib,$tag) {
    return $this->parseXmlTag($tagLib, $tag, $r[1], '');
},$content);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值