我在类的外侧定义了一个变量。我通过关键字global
在类的函数中访问。我在这个变量中设置了一些值并返回变量。但是在我称之为功能的地方我什么都没得到。这是我的代码
$category_ids=array();
class Categoriesinfo
{
function get_categories_info($feed_id)
{
$all_categories[] = $this->get_parent_ids(5);
//here I receive only null
echo '<pre>';
var_dump($all_categories);
echo '</pre>';
}
function get_parent_ids($category_id)
{
global $db;
//echo '<br> '.$category_id;
global $category_ids;
$parent_id = $db->Execute("SELECT categories_id,parent_id FROM ".DB_PREFIX."_categories WHERE categories_id='$category_id'");
if($parent_id->fields['parent_id']==0)
{
$category_ids[]=$parent_id->fields['categories_id'];
//when I take print_r of $category_ids it shows my values but where I call this function it shows null
return $category_ids;
}
else
{
$category_ids[]=$parent_id->fields['categories_id'];
$this->get_parent_ids($parent_id->fields['parent_id']);
}
}
}
现在在get_parent_ids
函数中,当我取print_r
变量的global
时,我可以看到一个包含2个值的数组。但是当我调用这个函数时,我只收到null。不返回此变量。我的代码有问题,或者我做错了什么?
注意
实际上我在循环中调用函数get_parent_ids()
。我没有在代码中提到它。所以每次变量的值都会改变。所以请考虑这个因素