原代码如下:function addslashes_deep($value)
{
$value = is_array($value) ? array_map("addslashes_deep",$value) : addslashes($value);
return $value;
}我想把以上代码放进一个类里:class SafeClass
{
function addslashes_deep($value)
{
$value = is_array($value) ? array_map("addslashes_deep",$value) : addslashes($value);
return $value;
}
}粗体部分:addslashes_deep 是必须要加 $this-> 的,但是我加成 "$this->addslashes_deep 之后,系统提示错误,我也知道这样加是不行.哪有没有什么办法?把安全一类的涵数全部封装到一个类里?谢谢 !

解决方案 »

  1.   

    http://blog.csdn.net/SysTem128/archive/2007/12/18/1947858.aspx
    参见:
    array_map(array($this,'Strip_Magic_Slashes'), $varImp)
      

  2.   

    class Safe
    {
    function addslashes_deep($value)
    {
    $value = is_array($value) ? array_map(array($this,'addslashes_deep'),$value) : addslashes($value);
    return $value;
    }
    }
    Warning: array_map() [function.array-map]: The first argument, 'Array', should be either NULL or a valid callback in D:\web_root\dflash\include\lib\inc.class.safe.php on line 6
    还是提示错误啊!!!!
      

  3.   

    已经提示的很清楚了。
    array_map第一个参数既不可以为null也不可以为递归。
    把转换放在另一个方法里就行了。
      

  4.   

    class Safe
    {
        function addslashes_deep($value)
        {
            $value = is_array($value) ? array_map('addslashes_deep',$value) : addslashes($value);
            return $value;
        }
    }感觉写的不行,实现不了循环
      

  5.   


    <?php
    class Safe
    {
    function addslashes_deep($value)
    {
    $value = is_array($value) ? array_map(array($this,'addslashes_deep'),$value) : addslashes($value);
    return $value;
    }
    }
    $safe = new Safe();
    $ar = array('"123\\',array('"123\\','"123\\'));
    $ar = $safe->addslashes_deep($ar);
    var_export($ar);
    ?>没问题呀。
    你是不是静态调用了?
    要静态调用的话用 self 就行了。
    <?php
    class Safe
    {
    public static function addslashes_deep($value)
    {
    $value = is_array($value) ? array_map(array(self,'addslashes_deep'),$value) : addslashes($value);
    return $value;
    }
    }
    $safe = new Safe();
    $ar = array('"123\\',array('"123\\','"123\\'));
    $ar = Safe::addslashes_deep($ar);
    var_export($ar);
    ?>
      

  6.   


    请 phpBoy005 兄指导一下! 谢谢 !
      

  7.   

    吼吼,谢谢 SysTem 128 兄!谢谢!