//我想实现下面函数的目的是,把传入函数的一个任意字符串或者数组(如果是数组则应用于每个单元)中的<,>,",'变成实例即&quto这种形式的,但奇怪的是传送这个数组的时候,再用var_dump查看htmlToEntity应用过的函数,返回是null
实在找不到原因了,请大家帮忙看一下,应当如何修改这个函数啊?
function htmlToEntity(&$value,$key="")
{
if(is_array($value))
{
array_walk($value,"htmlToEntity");
}
else
{
htmlspecialchars($value,ENT_QUOTES);
}
}
$array = array("a'","<>");
$array =  htmlToEntity($array);
var_dump($array);//返回null

解决方案 »

  1.   

    关键在于
    $array =  htmlToEntity($array);
    这句,因为htmlToEntity没有返回值,所以最后将NULL值赋给了$array,
    改成下面的就可以了<?php   
    function htmlToEntity(&$value,$key="")
    {
        if(is_array($value))
        {
            array_walk($value,"htmlToEntity");
        }
        else
        {
            $value = htmlspecialchars($value,ENT_QUOTES);
        }
    }$array = array("<a href='test'>Test</a>", "<>");
    $a =  htmlToEntity($array);
    var_dump($array);//返回null
    print_r($array);
    ?>