PHP - 相同的结构数组不使用函数

时间:2016-08-04 13:25:34

标签: php arrays

如果我使用这种结构,一切正常:

function create_order_with_custom_products()
{
    $orderGenerator = new OrderGenerator();
    $orderGenerator->setCustomer(6907);

    $orderGenerator->createOrder(array(
        // Add configurable product
        array(
            'product' => 30151,
            'qty' => 1
        ), array(
            'product' => 30150,
            'qty' => 2
        ),
    ));
}

如果我创建一个数组并使用它:

$ItemsId = [];
if(!empty($ItemsInCart) && count($ItemsInCart)>0)
{
    foreach($ItemsInCart['productid'] as $key=>$value){
        $ProductId = $value;
        $ProductQty = $ItemsInCart["productqty"][$key];
        $product_id = $ProductId; // Replace id with your product id
        $qty = $ProductQty; // Replace qty with your qty

        $ItemsId[] = ["product"=>$ProductId,"qty"=>$qty];
    }
}




function create_order_with_custom_products()
{
    $orderGenerator = new OrderGenerator();
    $orderGenerator->setCustomer(6907);

    $orderGenerator->createOrder($ItemsId);
}

如果我print_r($ItemsId);我收到以下输出:

  

数组([0] =>数组([product] => 30143 [数量] => 1)[1] =>数组(   [product] => 30144 [数量] => 2)[2] =>数组([product] => 30145   [qty] => 3)[3] =>阵列([product] => 30146 [qty] => 4)[4] =>   数组([product] => 30147 [qty] => 5))

它已不再有效。我没有看到原因。

您可以在此处看到的createOrder功能代码:http://pastebin.com/0iUbZpHU

您能告诉我我的错误在哪里以及为什么我的代码无效。

1 个答案:

答案 0 :(得分:2)

阅读variable scope$ItemsId函数中没有create_order_with_custom_products()变量。您需要将其作为参数传递:

function create_order_with_custom_products($ItemsId)
{
    // ...
}

然后使用您创建的变量调用它:

create_order_with_custom_products($itemsId);