我有一个函数,我传递一个变量作为参考到一个数组存储到。之前,它还花了第二个参考变量来存储图像url。当它使用这两个一切工作正常,我没有得到一个未定义的变量错误。现在我已经移除了图像部分,并将其包含在存储在单个引用变量中的数组中,并告诉我我传递的变量是未定义的。PHP:为什么我的变量错误作为未定义的引用传递?
这里是我的功能:
<?php
function retrieve_t($movie_title, &$movie_data) {
$url = "http://www.imdbapi.com/?t=".urlencode($movie_title);
$content = file_get_contents($url);
if(substr($content, 2, 8) == "Response")
return false;
$data_array = explode("\",\"", substr($content,2,strlen($content)-4));
$data_array2 = array();
foreach ($data_array as $value) {
$temp = explode("\":\"", $value);
array_push($data_array2, $temp[0]);
array_push($data_array2, $temp[1]);
}
$movie_data = array($data_array2[0] => $data_array2[1],
$data_array2[2] => $data_array2[3],
$data_array2[4] => $data_array2[5],
$data_array2[8] => $data_array2[9],
$data_array2[10] => $data_array2[11],
$data_array2[12] => $data_array2[13],
$data_array2[14] => $data_array2[15],
$data_array2[16] => $data_array2[17],
$data_array2[18] => $data_array2[19],
$data_array2[22] => $data_array2[23],
"img_url" => $data_array2[21]);
return true;
}
?>
而且这里是它被称为:
<?php include "imdb_search.php"; ?>
<?php
if(isset($_GET["add"]) && $_GET["title"])
if($_GET["add"] == "yes") {
include "db_movie_add.php";
$title = $_GET["title"];
if(retrieve_t($title, $movie_data))
add_movie($movie_data);
}
?>
<html>
<head>
<title>First Page</title>
</head>
<Body>
<form>
Title: <input value="<?php if (isset($_GET["title"])) echo $_GET["title"]; ?>" type="text" name="title" /><br />
<input type="submit" value="Search" />
</form>
<?php
if(isset($_GET["title"])) {
$title = $_GET["title"];
if(retrieve_t($title, $movie_data)) {
echo "<img src=\"{$movie_data["img_url"]}\" width=\"200\"><br \>";
echo "Title: {$movie_data["Title"]}<br \>";
echo "<form><input type=\"hidden\" name=\"title\" value=\"{$title}\"><input type=\"hidden\" name=\"add\" value=\"yes\"><input type=\"submit\" value=\"Add\" /></form>";
} else {
echo "Sorry, movie was not found!";
}
}
?>
</Body>
</html>
这是不确定的? ('$ movie_data'我敢打赌)报告的具体错误消息和行号是什么? imdb_search.php的内容是什么? – 2012-07-11 00:54:38
这到底是什么 - 'array($ data_array2 [0] => $ data_array2 [1],...''?? – 2012-07-11 01:00:04
他基本上是采用奇数偶数索引并使这些键和奇数索引值 – 2012-07-11 01:01:19