变量的作用域
- 函数外面的叫全局变量,内部的为局部变量,两者的作用域并不同。
- 函数的静态变量,不会因为函数结束而销毁,只在第一次运行定义赋值。
- 函数内部要需要全局变量,需要传参,或者使用global 关键字。
<?php
$var1 = 1;
$var2 = 2;
function demo1(){
echo $var1 = 3; //3
echo globals $var2 = 4; //4
$GLOBALS['var1'] = 2;
}
demo1();
echo $var1; //2
echo $var2; //4
function demo2(){
static $var1;
$var1++;
echo $var1;
}
demo2(); //1
demo2(); //2
复制代码
传值,引用传参
$param = 100;
function setParam($param){
$param = 101;
}
setParam($param);
echo $param; //100
function setParam1(&$param){ $param = 101;}setParam1($param);echo $param; //101复制代码
函数引用
在函数声明和指派返回值给一个变量时,都使用引用运算符&
function "e(){
static $b=0;
$b+=1;
echo $b.'<br/>';
return $b;}
$a = quote(); //1
$a = 5;
$a = quote(); //2
echo $a.'<br/>'; //2
$a = "e(); //3
echo $a.'<br/>'; //3
$a = 5;
$a = "e(); //6 函数内部的静态变量指向$a的内容,即是5
echo $a.'<br/>'; //6复制代码
函数只写return时,返回的值为NULL