我有这样的代码
编辑:现在可以工作了
$eigenesVideoId = array();
$eigenesVideoTitel = array();
$eigenesVideoTags = array();
$counter = 0;
function printEntireFeed($videoFeed, $counter)
{
global $eigenesVideoId;
global $eigenesVideoTitel;
global $eigenesVideoTags;
global $counter;
foreach($videoFeed as $videoEntry)
{
if ($videoEntry->isVideoPrivate() != "1")
{
$eigenesVideoId[$counter] = $videoEntry->getVideoId();
$eigenesVideoTitel[$counter] = $videoEntry->getVideoTitle();
$eigenesVideoTags[$counter] = implode(",", $videoEntry->getVideoTags());
$counter++;
}
}
try
{
$videoFeed = $videoFeed->getNextFeed();
}
catch (Zend_Gdata_App_Exception $e)
{
return;
}
if ($videoFeed) {
printEntireFeed($videoFeed, $counter);
}
}
printEntireFeed($videoFeed, 1);
echo count($eigenesVideoId);
应该将每个非私有视频放入数组中。但是数组总是空的,count总是0。
如何改变这个递归函数(或外部数组变量),使数组被填充,并且之后可以访问它们
要使用$videoFeed->getNextFeed(),我认为您必须首先有一个初始提要。
另外,您正在从函数内部填充数组变量;但是要使用函数外部的变量,必须在函数内部声明它们为GLOBAL。否则它们是LOCAL的。(或者将它们作为REFERENCE传递。或者在函数末尾使用RETURN变量,并在每次调用后捕获它。