函数作用域问题
想简单的写个函数增1,代码如下:
function increment($value,$amount = 1){
$value = $value + $amount;
}
$value=10;
increment($value);
echo $value;
输出结果是
10
纳尼,没有道理啊
仔细阅读发现问题:函数中定义的变量,只能在函数中作用,出来屁都不是。
那要怎样实现函数的增1呢
修改如下:
function increment($value,$amount = 1){
$value = $value + $amount;
echo $value;
}
$value=10;
increment($value);
在函数外部调用函数,在函数内部直接输出
或者如下操作:
function increment(&$value,$amount = 1){ //&引用不是获得变量原本的值,而是指向原值。任何对引用的修改都会影响元变量值
$value = $value + $amount;
}
$a=10; //定义a方便理解,名字为value结果一样
increment($a);
echo $a;
小记
在开发项目时,一般编写函数我们会选择在函数内部就完成该函数的功能,而不能在函数外部处理一些功能(例如:输出。