<?php
/*
1. En fonction du menu (menu) et de la commande (commande) donnés, calculez le prix total de la commande
*/
$menu = '[
:1 ,"name":"大菜","food":[
{"food_id ":2,"name":"Porc braisé","price":"11"},
]}, "{ " type_id " : 2, " name " : " Cuisine chinoise ", " Food " : [ {" food_id " : 4, " name " : " petite viande frite ", " price " : " 13 "}, ","food":[ {"food_id":7,"name":"concombre ", "price": "16"} //numéro de coefficient quantité$order = '[{"food_id":1,"num":2},{"food_id":3,"num":1},{"food_id":6,"num":2},{" food_id":7,"num":1}]';
/*
2. Concevoir un menu de classe pour implémenter les fonctions suivantes :
1. Définir le menu, chaque instance doit en avoir un et un seul Menu (chaîne json, structure comme ci-dessus)
2. Méthode de calcul, après avoir saisi la commande (chaîne json, structure comme ci-dessus), affichez le prix
3. Méthode de réduction, vous pouvez définir la remise et afficher automatiquement le prix. Calculez la remise
4. Compteur de méthode statique. Afficher le nombre de fois que la méthode de calcul est appelée
*/
class Menu{
private $menu;//Menu
private $discountNum=10;//Discount
static $calculateCount=0;//Nombre d'appels
public function __construct($menu){
$this-> ; menu=json_decode($menu,true);
}
public function calculate($order){
self::$calculateCount++;
$totalPrice=0;
$order=json_decode($order,true);
foreach ($order as $key => $value) {
$foodPrice=$this->getFoodPrice($value['food_id']);
$num=$value['num'];
$totalPrice+= ( $foodPrice*$num);
}
echo 'Le prix total d'origine est :'.$totalPrice.'<br/>';
echo 'Le prix réduit est :'.$totalPrice*($this- >discountNum /10).'<br/>';
}
remise de fonction publique ($discountNum){
return $this->discountNum=$discountNum;
}
compteur de fonction statique public (){
echo 'le nombre d'appels de la méthode de calcul est :'.self::$calculateCount.'<br/>';
}
public function getFoodPrice($foodId){
foreach ($this-> ;menu as $key => $value) {
foreach ($value['food'] as $key => $value) {
if($foodId==$value['food_id']){
return $value [ 'prix'];
}
}
}
}
}
$menu='[
{"type_id":1,"name":"大菜","food":[
{" food_id ":1,"name":"Râpé de porc au goût de poisson","price":"10"},
{"food_id":2,"name":"Porc braisé","price":"11" },
{"food_id":3,"name":"Nouilles épicées","price":"12"}
]},
{"type_id":2,"name":"Cuisine chinoise","food " :[
{"food_id":4,"name":"Porc frit","price":"13"},
{"food_id":5,"name":"Wonton","price":" 14"}
]},
{"type_id":3,"name":"accompagnements","food":[
{"food_id":6,"name":"crème glacée","price": "15 "},
{"food_id":7,"name":"concombre","price":"16"}
]}
]';
$order1='[
{"food_id": 1, "num":2},
{"food_id":3,"num":1},
{"food_id":6,"num":2},
{"food_id":7,"num" :1 }
]';
$order2='[
{"food_id":1,"num":2},
{"food_id":4,"num":1},
{"food_id":6 ," num":7},
{"food_id":5,"num":6}
]';
$order3='[
{"food_id":1,"num":2},
{" food_id" :2,"num":17},
{"food_id":4,"num":24},
{"food_id":7,"num":11}
]';
$menu1=nouveau menu($menu);
$menu1->remise(8.7);
$menu1->calculer($commande1);
$menu1->calculer($commande2);
$menu1-> ;calculer($commande3);
Menu::counter();
Convertissez JSON en tableau, puis parcourez les tableaux et ajoutez-les ensemble
La conversion Json et tableau, ainsi que les connaissances de base de la POO seront examinées ensemble. Si vous sentez que vous ne savez pas par où commencer, rendez-vous sur le site Web chinois et regardez les vidéos pertinentes.