Php 从函数返回json数据

Php 从函数返回json数据,php,json,api,Php,Json,Api,我正在制作某种网站来观看电影/电视节目,只是为了好玩。我被卡住了,基本上我制作了函数getMovieFromAPI,它接受给定的ID并在数据库中搜索imdbID,然后我使用该imdbID从API中查找有关该电影的信息。一切都很好,我可以使用echo-inside函数来显示数据。我的问题是,如何在该函数之外使用该数据,例如:当我想看电影的年份和情节时,如何从该函数中获取该数据。我尝试将其作为数组和所有其他内容返回。我希望我能很好地解释我想要的内容。 我的代码: function getMovieF

我正在制作某种网站来观看电影/电视节目,只是为了好玩。我被卡住了,基本上我制作了函数getMovieFromAPI,它接受给定的ID并在数据库中搜索imdbID,然后我使用该imdbID从API中查找有关该电影的信息。一切都很好,我可以使用echo-inside函数来显示数据。我的问题是,如何在该函数之外使用该数据,例如:当我想看电影的年份和情节时,如何从该函数中获取该数据。我尝试将其作为数组和所有其他内容返回。我希望我能很好地解释我想要的内容。

我的代码:

function getMovieFromAPI($IDD) {

global $connect, $omdbAPIKey;

$query[0]   =  "SELECT * FROM movies WHERE ID = '$IDD' LIMIT 1";
$results[0] =  $connect -> query( $query[0] );
$row[0] = $results[0] -> fetch_assoc();

$ID             =   $row[0]['imdbID'];

$apiurl = 'http://www.omdbapi.com/?i='.$ID.'&apikey='.$omdbAPIKey;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiurl);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response);}
编辑:根据要求,我制作了一个测试页面,只是为了调用这个函数,看看它是否有效

getMovieFromAPI('1');
一些基本的功能材料 为了使用在函数中创建的对象,实际上有两个选项。您可以以某种方式将信息传递到函数外部,也可以在函数外部初始化对象

第一个选项可以使用return语句完成。这会将对象返回到调用函数的位置。如果要使用返回的数据,需要将其存储在以下位置:

// This function's return value isn't actually being stored anywhere
thisFunctionReturnsSomething($a, $b);

// This function's return value is being stored into the variable $data
$data = thisFunctionReturnsSomething($a, $b);
但我们还需要确保我们的函数返回一个值,以便我们可以使用它

function thisFunctionReturnsSomething($a, $b){
  // Lets do something with the variables that are passed in
  $c = $a + $b;
  // And return what we just did
  return $c;
}
现在,如果我们调用函数并存储返回值
$data=ThisFunctionReturnsMething($a,$b)
我们将把
$a
$b
的总和存储在
$data

一些JSON的东西 一旦有了数据,就可以使用JSON的层次结构来获取所需的特定信息

假设您有一个如下所示的返回值:

$data = {"key1": "value1", "key2": "value2"};
您可以使用以下选项访问所需的特定值:

echo $data->key1; // This will return value1
但是,使用数组来访问所解释的值会更容易


该echo语句请求
结果
对象的第一个索引(
[0]
),然后进一步进入items对象,获取该数组中的第二个元素并返回
url
项的值。这将返回url
http://stackoverflow.com/

您可以编辑代码,让我们知道您在哪里调用
getMovieFromAPI()
函数吗?返回值将返回到哪里?此外,您在解析JSON对象以获取其中的数据时是否遇到问题?您是在网站中使用此对象还是在网站上使用移动应用程序@Novice@Enigmadan我添加了它,我真的不知道解析JSON对象有什么问题,我是新来的,所以sorry@MedisRedzic看起来你的问题很小,因为将数组转换成有意义的html我从未在Omdb上工作过,所以不知道它返回的确切数据/格式。你能发布返回的json吗?@MedisRedzic如果这解决了问题,请记住选择它作为接受的答案!
$json = '{ "results" : [ { "items" : 
            [ { "item" : [ { "url" : "http://google.com/"} ] },
              { "item" : [ { "url" : "http://stackoverflow.com/"} ] } 
            ],
         } ] }';
$data = (array)(json_decode($json)); // Casts JSON object to an array
// Get the data from the nested array
echo $data['results'][0]->items[1]->item[0]->url;