使用休息显示详细信息


using rest show details

使用 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而不是forforeach语法检查本手册:http://php.net/manual/en/control-structures.foreach.php

在if语句中使用foreach循环而不是for循环和$book而不是$books。

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