php面试常考---(基础二)

1.全局变量和局部变量
函数内的变量和函数外变量

    $outer = 'str';   //全局变量
    function   mgfunc() {
             echo   $outer;   //局部
   }

关键字global和超前局变量$GLOBALS

 $outer = 'str';
    function  mgfunc() {
            global  $outer;  //或者  $GLOBAL['outer']
            echo   $outer;
    }

2.静态变量static
静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不会消失
static关键字

2.1 仅初始化一次
2.2 初始化时需要赋值
2.3 每次执行函数该值会保留
2.4 static修饰的变量是局部的,仅在函数内部有效
2.5 可以记录函数的调用次数,从而可以在某些条件下终止递归

 function  myFunc()
    {
        static  $a = 1;
        echo  $a ++;
    }
    myFunc();   ----->  1
    myFunc();   ----->  2
    myFunc();   ----->  3

3.函数参数
默认情况下,函数参数通过值传递
如果希望允许函数修改它的值,必须通过引用传递参数

$a = 1;
function  myFun($a) {  
     $a = 2 ;
}
myFun($a);   
echo $a;   //这个时候输出的$a = 1  因为内部变量和外部变量没有关系

如果要内部变量和外部变量有关系

$a = 1;
function myFun( &$a ) {
       $a = 2;
}
myFunc($a);  //如果上面引用传值的话,则只能传变量$a   不能传值
echo  $a;   //这个时候输出的是  2  

4.函数的引用返回
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符 &

function  &mgFunc() {
      static   $b = 10;
      return  $b ;
}
$a = myFunc();      //$a = 10
$a = &myFunc();    //此时$a 和 $b 互为引用  $a和$b  共用一个内存空间
$a = 100;    //此时 $a 内存空间的值被改了  那么$b也被改了
echo myFunc();   //  输出值为100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值