【问题标题】:PHP is_array returning false?PHP is_array 返回假?
【发布时间】:2014-09-28 20:31:32
【问题描述】:

我已经多次使用 is_array。 变量是一个数组,看我的代码, 但是当我使用 is_array 函数时它返回 false

有什么想法吗?

这是我的代码。

public function updateCategories($array = null)
{   
    echo gettype($array); // echos array
    if($array = null)
    {    
        return false;
    }    
    if(!is_array($array))
    {      
        echo "false"; // echos false
        return false;
    }

    foreach($array as $key => $val)
    {
        foreach($val as $Property => $Value)
        {
            if(!$this->updateCategoryProperty($key, $Property, $Value))
            {
                return false;
            }
        }
    }
}

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    您的if($array = null) 不是比较,而是分配。

    【讨论】:

    • WOOOOW 我不敢相信我错过了,我检查了我的代码很多次。非常感谢。
    • 没错。你的编辑应该已经为你指出了这一点。我使用 Netbeans,当我在 if 语句中进行赋值时,它会给我一个警告。你应该试试看。
    • 这是一个常见的错误,以避免它像这样编写 if 语句 if(null == $array) 所以如果你错过了 '=' php 将抛出语法错误
    【解决方案2】:

    除了 Russel Dias 的回答:总是这样写你的“空检查”:

    if (null == $my_var)
    

    现在,如果缺少一个“=”,这总是会得到一个真正的错误,因为你不能将某些东西分配给 null。

    【讨论】:

    • 抱歉死灵,但为什么我的“空检查”总是这样写?为什么不empty( $my_var ) || !is_array( $my_var ),留下它更短的明显事实。
    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多