Issue
需要将适用于 PHP 5.4 的数组顺从转换为适用于 PHP 5.3 的版本。我无法更新我的实时站点PHP,所以我有点卡住了。我试图完成的是提交表单时为 Drupal 7 创建一个优惠券代码。
我看过的地方:
用于取消引用函数结果的 PHP 语法 很好的讨论。看起来几乎是不可能的。有几个很好的解决方案示例,我无法转换为我的问题。
5.4 取消引用有效的 5.3 数组调用 与我的问题非常相似,但我无法找到使用它的方法。
适用于 PHP 5.4 的原版:
$coupon->store_discount_reference = ['und'=>[['target_id'=>"57"]]];
$coupon->store_coupon_exclusive = ['und'=>[['value'=>"0"]]];
$coupon->store_coupon_conditions = ['und' => [
[
'condition_name'=>'store_coupon_usage_evaluate_usage',
'condition_settings'=> ['max_usage'=>'1'],
'conditions_negative'=>0,
'remove_condition'=>'Remove'
],
]];
我试过什么
$coupon->store_discount_reference = array('und'=> array('target_id'=>"57"));
$coupon->store_coupon_exclusive = array('und'=> array('value'=>"0"));
$coupon->store_coupon_conditions = array('und' => array('condition_name'=>'store_coupon_usage_evaluate_usage','condition_settings'=> array('max_usage'=>'1'),'conditions_negative'=>0,'remove_condition'=>'Remove'));
全块
$coupon = new stdClass();
$coupon->type = "discount_coupon";
$coupon->coupon_id = '';
$coupon->code = $code;
$coupon->bulk = false;
$coupon->created = '';
$coupon->status = 1;
$coupon->uid = 0;
$coupon->is_new = true;
$coupon->commerce_discount_reference = ['und'=>[['target_id'=>"57"]]];
$coupon->commerce_coupon_exclusive = ['und'=>[['value'=>"0"]]];
$coupon->commerce_coupon_conditions = ['und' => [
[
'condition_name'=>'commerce_coupon_usage_evaluate_usage',
'condition_settings'=> ['max_usage'=>'1'],
'conditions_negative'=>0,
'remove_condition'=>'Remove'
],
]];
commerce_coupon_save($coupon);
您似乎到处都缺少数组级别
$coupon->store_discount_reference = array('und'=> array(array('target_id'=>"57")));
$coupon->store_coupon_exclusive = array('und'=> array( array('value'=>"0")));
$coupon->store_coupon_conditions =
array('und' =>
array(
array('condition_name'=>'store_coupon_usage_evaluate_usage',
'condition_settings'=> array('max_usage'=>'1'),
'conditions_negative'=>0,
'remove_condition'=>'Remove'
)
)
);