protected function _changeArray(&$Products)
{
foreach($Products as $item)
{
Mage::log('Type: '.$item['attribute']);
switch($item['shipping_attribute'])
{
case '0':
$item['is_cargo'] = 'no';
$item['is_bulky'] = 'no';
$item['is_firework'] = 'no';
Mage::log('assigned '.$item['attribute']);
break;
case '1':
$item['is_cargo'] = 'yes';
$item['is_bulky'] = 'no';
$item['is_firework'] = 'no';
Mage::log('assigned '.$item['attribute']);
break;
case '2':
$item['is_cargo'] = 'no';
$item['is_bulky'] = 'yes';
$item['is_firework'] = 'no';
Mage::log('assigned '.$item['attribute']);
break;
case '3':
$item['is_cargo'] = 'no';
$item['is_bulky'] = 'no';
$item['is_firework'] = 'yes';
Mage::log('assigned '.$item['attribute']);
break;
}
Mage::log('"switch" finished!');
}
}
Products
配列の別の要素の値に応じて、配列のこれらの要素を変更しようとしています。起こらないように見えるのは、彼らが変わらないということです... すべては常に'no'
価値を保ちます。で書いているテストのおかげで、'attribute'
値が正しい方法で異なり、関数が正しく通過することを知っています。switch-cases
log
関数を呼び出した後にProducts
配列を出力していますが、変更されていません。参照渡しでうまくいくと思っていましたが、いや... 通常の方法で配列を渡し、関数から返すことも試みましたが、再び失敗しました。
私が間違っていること、または十分にしていないことは何ですか?
ああ、そうです、私もswitch-case
次のようにしてみました:
case '...':
$Products['is_cargo'] = 'yes';
$Products['is_bulky'] = 'no';
$Products['is_firework'] = 'no';
Mage::log('assigned '.$Products['attribute']);
break;
いやまた…