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

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???
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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();

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧