首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用函数外部变量的PHP

使用函数外部变量的PHP
EN

Stack Overflow用户
提问于 2013-05-15 09:55:48
回答 5查看 2.2K关注 0票数 1

我想知道是否有人能帮我。

我正在编写一些PHP函数,其中我希望在函数中使用一个变量,然后在函数之外使用更新的变量。

例如

代码语言:javascript
运行
复制
$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是可能的吗?

提前谢谢。

更新了函数

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-15 09:57:35

代码语言:javascript
运行
复制
function adminCharge(&$subTotal){
// do things
}

代码语言:javascript
运行
复制
$subTotal = adminCharge($subTotal);
function adminCharge($subTotal){
 //do things
 return $subTotal;
}

在第一种情况下,将$subTotal变量作为引用传递,因此所有更改都将反映到“外部”变量中。

在第二种情况下,您传递它并返回新值,因此很容易理解为什么要工作。

请注意

但是,第一种解决方案可能会导致您产生难以理解和调试的副作用。

更新

如果要“提取”(因此返回)两个变量,可以执行以下操作

代码语言:javascript
运行
复制
list($subTotal,$packagingPrice) = adminCharge($subTotal);
function adminCharge($subTotal){
    if(isset($packagingPrice)){
        $subTotal = $subTotal + $packagingPrice;
    }
    return array($subTotal, $packagingPrice);
}
票数 3
EN

Stack Overflow用户

发布于 2013-05-15 09:57:51

代码语言:javascript
运行
复制
function adminCharge($subTotal, $packagingPrice){
    if(isset($packagingPrice)){
        $subTotal = $subTotal + $packagingPrice;
    }

    return $subTotal;
}

像这样使用它:

代码语言:javascript
运行
复制
$subTotal = adminCharge($subTotal, $packagingPrice);
票数 1
EN

Stack Overflow用户

发布于 2013-05-15 09:58:11

你什么都不回,所以你可以用球衣,但我不推荐.不过,看看吧,因为这就是你想要的:http://www.php.net/global

在我看来,改变你的职能:

代码语言:javascript
运行
复制
function adminCharge($subTotal){
    global $packagingPrice
    if(isset($packagingPrice)){
         $subTotal = $subTotal + $packagingPrice;
    }
    return $subTotal; 
}

$subTotal += $priceToShow * $ct_qty;
$subTotal = adminCharge($subTotal);

还请记住,您的函数中没有$packagingPrice,所以我将它添加到全局函数中。否则就行不通了:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16561979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档