PHP通过函数传递对象
我有一个返回json对象的函数:PHP通过函数传递对象,php,function,object,Php,Function,Object,我有一个返回json对象的函数: function getMyFbEvents() { global $facebook; try { $fb_events = $facebook->api('/me/events/'); foreach ($fb_events["data"] as $fb_event_data) { $event_info = json_decode(file_get_contents('htt
function getMyFbEvents() {
global $facebook;
try {
$fb_events = $facebook->api('/me/events/');
foreach ($fb_events["data"] as $fb_event_data) {
$event_info = json_decode(file_get_contents('https://graph.facebook.com/' . $fb_event_data['id'] . '/?access_token=' . $facebook->getAccessToken()));
return $event_info;
}
} catch (FacebookApiException $e) {
error_log($e);
$fb_events = null;
return null;
}
}
现在,如果我想通过调用relative函数从脚本的另一页调用该对象,我该怎么做
我的意思是,如果我现在想循环$event\u info
,就好像我在那个函数中一样,并获取每个给定的数据,有办法吗
可能听起来有点“太多”:)首先,您需要累积所有值,然后返回,而不是从循环中返回
function getMyFbEvents() {
global $facebook;
try {
$fb_events = $facebook->api('/me/events/');
$eventDetails = array();
foreach ($fb_events["data"] as $fb_event_data) {
$event_info = json_decode(file_get_contents('https://graph.facebook.com/' . $fb_event_data['id'] . '/?access_token=' . $facebook->getAccessToken()));
$eventDetails[] = $event_info;
}
return $eventDetails;
} catch (FacebookApiException $e) {
error_log($e);
$fb_events = null;
return null;
}
}
然后,当您想使用它时,只需说(如果它位于不同的php文件中,请确保在实现getMyFbEvents的文件中包含_)
另一方面,使用global
关键字被认为是不好的做法。更简洁的实现只需将$facebook变量作为参数传递给函数
function getMyFbEvents($facebook) {
try {
//..... the rest of your function
然后打电话
$var = getMyFbEvents($facebook);
是的,好的。但这样它就不会像在函数本身中一样循环。我需要能够循环这些数据,就像它是一个数组一样。我想我知道你现在在找什么。记住,
file\u get\u contents
将向远程服务器发送单个请求,而你正在循环中使用它,这可能会让用户等待很长时间(如果有10个请求),这不是一个好主意,依我看。
$var = getMyFbEvents($facebook);