$requests = array("add : milk",
"remove: milk",
"add : pickles");
$request_option = "add : remove : checkout : quantity_upd";
$request_option_split = explode(":",$request_option);
// print_r($request_option_split);
function shoppingCart($requests,$option){
$j = sizeof($requests);
$basket = array();
if ($option[1] == 'remove') {
echo "hahah";
}else{
echo "f***";
}
for ($i=0 ; $i < $j ; $i++) {
$temp = explode(":",$requests[$i]);
// print_r($temp);
switch ($option[1]) {
case $option[0]://add
$basket[$temp[1]] = 1;
break;
case $option[1]://remove
echo "asdf";
unset($basket[0]);
break;
case $option[3]://quantity_upd
$basket[$temp[1]] = $basket[$temp[1]] + intval($temp[2]);
break;
case $option[2]://checkout.
$j = sizeof($basket);
for ($i=0; $i < $j; $i++) {
unset($basket[$i]);
}
break;
default:
echo "hello world";
break;
}
}
print_r($basket);
}
shoppingCart($requests, $request_option_split);
Я пытаюсь отделить каждый элемент от массива, затем, если элемент соответствует опции, он будет выполнен.Например, я выделил первый элемент массива $request
, и $temp[0]
будет "add"
.Однако, когда я помещаю $temp[0]
в оператор switch, он не равен строке "add"
.Это так странно.
Я использую функцию gettype
, чтобы проверить это, каждый элемент, который я получил из массива $request
, является строкой.но они не равны "string"
.Я так запутался.Я тоже попробовал $str = (string)$temp[0]
.это все еще не работает.Может кто-нибудь объяснить мне, пожалуйста?