我想简化在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