你会解释PHP代码吗?

时间:2014-09-11 23:48:58

标签: php

function getParent(&$categories, $category){
    foreach ($categories as &$cat){
        if($category->parentId==$cat[0]->id){
            $cat["subCategories"][$category->id] = array($category,"subCategories"=>array());
            return $cat;
        }
        else if(isset($cat["subCategories"])){
            $this->getParent($cat["subCategories"], $category);
        }
    }
}

$ categories(它的一个带有通道的列表,包含一个自我id和一个外来id)是一个列表,$ category是类别中的一个元素。 我不知道这行是什么意思$category->parentId==$cat[0]->id 为什么是[0]?为什么经常为0?你会解释整个代码吗?

1 个答案:

答案 0 :(得分:0)

if正在检查当前类别Id是否与父ID相同,然后返回一个数组,否则它会再次运行,寻找下一个父类。

$category->parentId == $cat[0]->id

[0]是常量,因为它引用了数组的第一项,所以不是知道数组键,而是短手。

php中的数组可以有一个键$ cat ['current_id'],如果这是第一个键,它也会是$ cat [0]给出相同的结果。

$array = Array('current_id' => 55, 'title' => 'first one');

echo $array['current_id'];

echo $array[0];

if ($array['current_id'] == $array[0]){ echo 'Same'; } else { echo 'Not Same'; }
if ($array['current_id'] == $array[1]){ echo 'Same'; } else { echo 'Not Same'; }

对于键0,1,2,3 ......

,所有数组都从0开始

http://php.net/manual/en/language.types.array.php#example-99

http://oreilly.com/catalog/progphp/chapter/ch05.html