为什么我在类里写的回调函数调用的时候出错了???

kkobebryant 2004-11-25 09:27:01
function unEscape($str)
{
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/","toUtf8",$str);
return mb_convert_encoding($text,"gb2312", 'utf-8');
}

function toUtf8($ar)
{

$c="";

foreach($ar as $val)
{
$val = intval(substr($val,2),16);
if($val < 0x7F)
{ // 0000-007F
$c .= chr($val);
}
elseif($val < 0x800)
{ // 0080-0800
$c .= chr(0xC0 | ($val / 64));
$c .= chr(0x80 | ($val % 64));
}
else
{ // 0800-FFFF
$c .= chr(0xE0 | (($val / 64) / 64));
$c .= chr(0x80 | (($val / 64) % 64));
$c .= chr(0x80 | ($val % 64));
}
}

return $c;
}

上面的函数是写在类里面的,实例化类后调用出错??说什么找不到toUtf8()这个要回调的函数
但不写在类里就可以调用正常,why???
...全文
70 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hahawen 2004-11-26
o ,原来是这个意思, 和sax解析时是一样的.
回复
xuzuning 2004-11-26
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/","toUtf8",$str);
写作
$text = preg_replace_callback("/%u[0-9A-Za-z]{4}/",array(&$this,"toUtf8"),$str);

这也是一直困扰我的问题,直到前不久才找到调用方法。多读读外国佬的代码还是有好处的,可惜没有那么多时间。
回复
hahawen 2004-11-25
类内部调用,$this->toUtf8();
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2004-11-25 09:27
社区公告
暂无公告