是否可以在函数内部获取这些值并使用函数之外的值 这是我的代码:
<?
function expenditure () {
$totalexpenditure = $sum1 + $sum2;
}
function income () {
totalincome = $sum1 + $sum2;
}
$profit = $totalincome - $totalexpenditure;
?>
现在我的问题是如何才能获得totalincome和toatalexpenditure的价值? 我正在学习PHP的新知识,所以请帮助我们。
答案 0 :(得分:10)
<?
function expenditure ($sum1, $sum2) {
$totalexpenditure = $sum1 + $sum2;
return $totalexpenditure;
}
function income ($sum1, $sum2) {
$totalincome = $sum1 + $sum2;
return $totalincome;
}
$profit = income ($sum1, $sum2) - expenditure($sum1, $sum2) ;
?>
答案 1 :(得分:2)
你的代码错了,因为:
$profit
始终为0
(零)。解决方案有三个:
解决方案号。 1: 强>
function expenditure ($sum1, $sum2) {
$expenditure = $sum1 + $sum2;
return $expenditure;
}
function income ($sum1, $sum2) {
$income = $sum1 + $sum2;
return $income;
}
然后你可以这样使用它:
$profit = income(10, 200) - expenditure(20,18);
解决方案号。 2: 强>
class Finances {
public $expenditure = 0;
public $income = 0;
public function addExpense($expense) {
$this->expenditure = $this->expenditure + $expense;
return $this;
}
public function addIncome($income) {
$this->income = $this->income + $income;
return $this;
}
public function getProfit() {
return $this->income - $this->expenditure;
}
}
然后你可以这样使用它:
$my_finances = new Finances();
$my_finances->addExpense(20)->addExpense(18)->addIncome(10)->addIncome(10);
$profit = $my_finances->getProfit();
解决方案号。 3:(避免使用!)
function expenditure() {
global $sum1, $sum2;
return $sum1 + $sum2;
}
function income() {
global $sum1, $sum2;
return $sum1 + $sum2;
}
然后你就这样使用它:
$sum1 = 10;
$sum2 = 200;
$expenditure = expenditure();
$sum1 = 20;
$sum2 = 30;
$income = income();
$profit = $income - $expenditure;
我希望你看,为什么解决方案没有。 3 是一个坏主意(因为通常使用global
变量将某些东西传递给函数是个坏主意。)
答案 2 :(得分:0)
这与您可能在稍后阶段面临的另一个问题有关。如果您想在函数中传递2个变量并更改它们的值,该怎么办?
$var1 = 22;
$var2 = 15;
function multi2(&$x, &$y){
$x = $x * 2;
$y = $y * 2;
}
multi2($var1, $var2);
print $var1 . ", " . $var2;
您将获得此输出
44, 30
$x
和$y
参数本身不是变量,而是传递给变量的引用(由&
定义),如果您需要更改值,这将非常有用内部的外部变量。