需要轉換陣列的尊重,在PHP 5.4工程與PHP 5.3兼容版本。我無法更新我的現場網站PHP,所以我有點卡住了。我試圖完成的是在提交表單時爲Drupal 7創建優惠券代碼。
當我看着:
PHP syntax for dereferencing function result很好的討論。幾乎看起來完全不可能。有幾個很好的解決方案示例,我無法將其轉換爲我的問題。
5.4 dereferencing to valid 5.3 array call與我的問題非常相似,但我一直無法找出使用它的方法。
原,在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);
你的意思是你要轉換'[]'來'陣列()'或者是有什麼你這裏就不說了,還是我錯過了 – RiggsFolly
我猜我不知道我會改變爲array()。我試圖用array()而不是[]來包裝它們,它不起作用。我會添加一個我嘗試過的例子。 – CJdriver
你應該得到新的託管,然後確保他們使用現代的PHP。您無需升級就可以解決安全風險。 – Machavity