可以';t获取printTimeLineItemMetadata以传递函数外部的变量


Can't get printTimeLineItemMetadata to pass variables outside of the function

你好,我一直在尝试让镜像api检查时间表项是否已删除,如果已删除,请创建一个新的时间表项,如果不更新旧的时间表项。我正在用php编程,我知道这似乎应该是相当直接的,但由于某种原因,我被卡住了!请帮忙!现在我已经这样设置了,它似乎不想把变量传递到函数之外,我也不能从函数内部进行插入。

function printTimelineItemMetadata($service, $itemId) {
try {
$timelineItem = $service->timeline->get($itemId);
print 'Timeline item ID: ' . $timelineItem->getId();
if ($timelineItem->getIsDeleted()) {
  $deleted = "deleted";
  echo $deleted;
}
else { $deleted = "nope";
echo $deleted;}
 } catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
}

在这两种情况下,我都可以将$deleted传递给echo,但一旦我尝试将$delete传递给下面的if语句,就不需要了。

正如提问者在对问题的评论中解释的那样,这与范围界定有关。PHP中的函数有自己的作用域,因此默认情况下在函数中定义的变量不存在于该函数之外。

对此的快速解决方案是使变量global,但必须使用许多全局变量通常是糟糕的软件设计。如果您发现自己处于这种情况,请尝试重新思考您的代码,使其更加模块化。