我想知道是否有人能帮我。
我正在编写一些PHP函数,其中我希望在函数中使用一个变量,然后在函数之外使用更新的变量。
例如
$subTotal += $priceToShow * $ct_qty;
adminCharge($subTotal);
function adminCharge($loggedInfoprice, $subTotal){
if (($loggedInfoprice == 5)||($loggedInfoprice == 6)){
$packagingCurrency = "$";
$packagingPrice = "63";
$packagingPricing = $packagingCurrency.$packagingPrice;
}else {
$packagingCurrency = "£";
$packagingPrice = "30";
$packagingPricing = $packagingCurrency.$packagingPrice;
}
if(isset($packagingPrice)){
$subTotal = $subTotal + $packagingPrice;
}
}
<?php echo $subTotal; ?>
回显的$subTotal
似乎只显示函数之前的值。
从函数中提取$subTotal
和$packagingPricing
是可能的吗?
提前谢谢。
更新了函数
发布于 2013-05-15 09:57:35
function adminCharge(&$subTotal){
// do things
}
或
$subTotal = adminCharge($subTotal);
function adminCharge($subTotal){
//do things
return $subTotal;
}
在第一种情况下,将$subTotal
变量作为引用传递,因此所有更改都将反映到“外部”变量中。
在第二种情况下,您传递它并返回新值,因此很容易理解为什么要工作。
请注意
但是,第一种解决方案可能会导致您产生难以理解和调试的副作用。
更新
如果要“提取”(因此返回)两个变量,可以执行以下操作
list($subTotal,$packagingPrice) = adminCharge($subTotal);
function adminCharge($subTotal){
if(isset($packagingPrice)){
$subTotal = $subTotal + $packagingPrice;
}
return array($subTotal, $packagingPrice);
}
发布于 2013-05-15 09:57:51
function adminCharge($subTotal, $packagingPrice){
if(isset($packagingPrice)){
$subTotal = $subTotal + $packagingPrice;
}
return $subTotal;
}
像这样使用它:
$subTotal = adminCharge($subTotal, $packagingPrice);
发布于 2013-05-15 09:58:11
你什么都不回,所以你可以用球衣,但我不推荐.不过,看看吧,因为这就是你想要的:http://www.php.net/global
在我看来,改变你的职能:
function adminCharge($subTotal){
global $packagingPrice
if(isset($packagingPrice)){
$subTotal = $subTotal + $packagingPrice;
}
return $subTotal;
}
$subTotal += $priceToShow * $ct_qty;
$subTotal = adminCharge($subTotal);
还请记住,您的函数中没有$packagingPrice,所以我将它添加到全局函数中。否则就行不通了:)
https://stackoverflow.com/questions/16561979
复制相似问题