我想簡化在PHP中使用自定義函數向某些數組添加東西。陣列沒有被我的函數填充
$campaignLimits = array();
$couponLimits = array();
$subscriptions = array();
功能如下:
function DefineSubscription($itemname,$subscription,$campaignlimit,$couponlimit)
{
// Make em global
global $campaignLimits, $couponLimits, $subscriptions;
// Add stuff to the arrays
$campaignLimits[$itemname] = $campaignlimit;
$couponLimits[$itemname] = $couponlimit;
$subscriptions[$itemname] = $subscription;
return;
}
我調用該函數,就像這樣:
DefineSubscription(
"1", // Item Name/Number
1, // Subscription ID
1, // Campaign Limit
30 // Coupon Limit
);
然而,當我print_r($couponLimits);
,我得到Array
。
函數和數組聲明在require_once
的d文件中。
我明顯在做錯事。但是什麼? :)
編輯:通過在DefineSubscription函數本身執行print_r,我得到了正確的輸出。當我包含它時,看起來我的數組並不是全局的?它不應該是?
我已經做了這種編碼之前,我從未有過$ GLOBALS宣佈他們 - 會盡量嘗試壽。 – Jeff
不需要在$ GLOBALS數組中聲明變量,只需在access:print_r($ GLOBALS ['couponLimits',true) – marcocamejo
從來沒有這樣做過,奇怪:O – Jeff