使用休息显示详细信息

using rest show details

使用 rest 想要显示有关项目的详细信息,但功能代码中存在错误,但根据我的说法是正确的,但第 7 行有错误。我有两个代码,它们如下 index.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;
        }
    }
}

?>

这里需要改一下,把books改成book

 if($book==$find)
             {
             return $price;
             break;
             }

同时更改 foreach 而不是 forforeach 语法检查本手册:http://php.net/manual/en/control-structures.foreach.php

您需要使用 foreach 循环,而不是 for 循环。而且你不需要休息,因为它永远不会达到它。此外,循环内的 books 必须是 book,否则您将与数组而不是键进行比较。

    foreach($books as $book => $price) {
        if($book == $find) {
            return $price;
        }
    }

在您的 if 语句中使用 foreach 循环代替 for 循环,使用 $book 代替 $books。

foreach ( $books AS $book => $price ) {
    if ( $book == $find ) {
        return $price;
    }
}