2016-07-13 15 views
1

Rest verwenden möchten, zeigen Sie die Details zu den Elementen, aber es gibt einen Fehler im Funktionscode, aber nach mir ist das richtig, aber es gibt Fehler in der 7. Zeile. Ich habe zwei Codes sind sie als index.phpmit Rest Details anzeigen

<?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; 
 

 

 
} 
 
?>

der

Funktionscode

<?php 
 
function get_price($find) 
 
{ 
 
    $books = array(
 
     "java" => 300, 
 
     "c" => 250, 
 
     "php" => 350); 
 
    for($books as $book => $price) { 
 

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

 
?>

Antwort

1

Verwenden Sie eine foreach-Schleife anstelle einer for-Schleife und $ Buch statt $ Bücher in Ihrer if-Anweisung.

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

Sie benötigen eine foreach Schleife verwenden, keine for Schleife. Und du brauchst keine Pause, da sie es nie erreichen wird. Auch books innerhalb der Schleife muss book sein, sonst vergleichen Sie mit dem Array, nicht der Schlüssel.

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