2016-07-13 11 views
1

残りを使用してアイテムの詳細を表示したいのですが、機能コードにバグがありますが、私によれば正しいですが、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; 
 
     } 
 
    } 
 
} 
 

 
?>

答えて

1

if文で$ booksの代わりにforループと$ bookの代わりにforeachループを使用します。

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

に従ってくださいあなたがここで変更する必要がある、にbooksを変更するとしている2つのコードを持っていますbook

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

またforeach代わりのforそのforeach構文を変更するには、このマニュアルをご確認ください:http://php.net/manual/en/control-structures.foreach.php

2

あなたがforeachループ、ないforループを使用する必要があります。そして、決してそれに到達しないので、あなたは休憩を必要としません。また、ループ内のbooksbookである必要があります。そうでない場合は、キーではなく配列と比較しています。

foreach($books as $book => $price) { 
     if($book == $find) { 
      return $price; 
     } 
    } 
関連する問題