0

次のコードがあり、未定義のインデックス エラーが発生し続けます。コードは test5() で失敗しますが、エラーを見つけることができません。

<?php
function test1() {
$vars = [0, 1, 2, 4, 3];
for ($i = 0; $i < count($vars); $i++) {
    print $vars[$i] . "\n";
}
} 

function test2() {
$flavors = ['vanilla', 'pistachio', 'banana', 'caramel', 'strawberry'];
$favorite = 'banana';
foreach ($flavors as $key => $flavor) {
    if ($flavor === $favorite) {
        print $key . "\n";
        break;
    }
}
}

function test3() {
$stuff = ['shoes', 33, null, false, true];
$selected = 0;
foreach ($stuff as $key => $thing) {
    if ($thing == $selected) {
        print $key . "\n";
        break;
    }
}
}

function test4() {
$four = 4;
$five = test4_helper($four);
print "four: $four\n";
print "five: $five\n";
}

function test4_helper(&$arg) {
$return = $arg++;
return $return;
}

function test5() {

$products = [
    'Trek Fuel EX 8' => [
                                            'price' => 2000, 
                                            'quantity' => 1
                                            ],
    'Trek Remedy 9' => [
                                            'price' => 2600, 
                                            'quantity' => 2
                                             ],
    'Trek Scratch 8' => [
                                            'price' => 3500,    
                                            'quantity' => 1
                                            ]
];
$total = 0;

$callback = function ($product, $name) {
            //$total = 0;
            $tax = 1.2;
            $price = $product[$name]['price'];
            $total += ($price * $product[$name]['quantity']) * $tax;
           return $total;
        };

array_walk($products, $callback);

print "$total\n";
}

/* * **********************************

 * *** DO NOT EDIT BELOW THIS LINE ****

 * *********************************** */

$tests = 5;
for ($i = 1; $i <= $tests; $i++) {
$function = "test$i";
print "\n\n==== Test $i ====\n";
$function();
print "==== END of test $i ====\n <br>";
}

このコードの問題は何ですか? テスト5で失敗しているようです

4

2 に答える 2

-1

PHP の配列は次のように定義されます。

$products = array(
    'Trek Fuel EX 8' => array(
                          'price' => 2000, 
                          'quantity' => 1
                          ),
    'Trek Remedy 9' => array(
                         'price' => 2600, 
                         'quantity' => 2
                         ),
    'Trek Scratch 8' => array(
                         'price' => 3500,    
                         'quantity' => 1
                         )
);

つまり、それらも確認して修正する必要が$vars = [0, 1, 2, 4, 3];あります。$flavors = ['vanilla', 'pistachio', 'banana', 'caramel', 'strawberry'];

于 2013-10-02T23:30:20.803 に答える