使用 rest 想要显示有关项目的详细信息,但函数代码中存在错误,但据我说,这是正确的,但第 7 行有错误。 我有两个代码,它们如下索引.php
<?php
header("content-Type:application/json");
include("function.php");
if(!empty($_GET['name'])){
$name = $_GET['name'];
$price = get_price($name);
if(empty($price))
deliver_response(200,"book not found",NULL);
else
deliver_response(200,"book found",price);
}
else{
deliver_response(400,"invalid",NULL);
}
function deliver_response($status,$status_message,$data)
{
header("HTTP/1.1 $status $status_message");
$response['status']=$status;
$response['status_message']=$status_message;
$response['data']=$data;
$json_response=json_encode($response);
echo $json_response;
}
?>
函数代码
<?php
function get_price($find)
{
$books = array(
"java" => 300,
"c" => 250,
"php" => 350);
for($books as $book => $price) {
if($books == $find) {
return $price;
break;
}
}
}
?>
您需要
使用 foreach
循环,而不是for
循环。而且你不需要休息,因为它永远不会到达它。此外,循环内books
需要book
,否则您将与数组进行比较,而不是键。
foreach($books as $book => $price) {
if($book == $find) {
return $price;
}
}
您需要在此处更改,将books
更改为book
if($book==$find)
{
return $price;
break;
}
还要更改foreach
而不是for
其foreach
语法检查本手册:http://php.net/manual/en/control-structures.foreach.php
在if语句中使用foreach循环而不是for循环和$book而不是$books。
foreach ( $books AS $book => $price ) {
if ( $book == $find ) {
return $price;
}
}