一个递归的简单理解

    /**
     * 根据末级科目id获取科目的完整多级名称
     */
    protected function getFullName($subjectId = 0)
    {
        if (empty($subjectId)) {
            return '';
        }

        $subjectModel = new Subject();
        $data = $subjectModel->getOne('id=:id', [':id' => $subjectId]);

        $fullName = '';

        if ($data) {
            if ($data['pid'] != 0) {
                $name =  $this->getFullName($data['pid']) . '-';
                $fullName .= $name . $data['name'];
            } else {
                return $data['name']; //当已经有递归时会返回给833行的调用,而不是返回给820行的整体调用(只有未走入递归时才返回给820行的调用)
            }
        }
        return $fullName;
    }

 

你可能感兴趣的:(每日总结,php,面向对象)