php函数相关(3):函数体中局部变量改变全局变量

php基础学习 专栏收录该内容
15 篇文章 2 订阅

1、引用传值


      此时实参传递的不是值,而是传递的是实参指向的地址;

<?php

	$a = 18;
	
	function aaa(&$num){    //  注意,此时的参数前有个 “&” 符号,是地址符号,传递的则不是参数对应的值,二是参数指向的地址了; 
		
	  return  $num += 1;
	}
	
	echo $a;             //18          未调用函数时候,直接输出原值;
	
	echo aaa($a);        //19          调用函数,将$a的地址传递过来,然后执行函数体内语句,返回;
	
	echo $a;             //19          由于$a指向的地址中的内容,发生了变化,所以被函数调用用,$a也发生了变化;

?>


2、global关键字:


    global关键字用在变量前,即声明:此变量用的是,代表的是全局变量(在函数内部使用);

<?php

    $gg = 28;
	
	function bbb(){
		
		global $gg;                  // 注意: 此时 “global” 关键词,用在变量名前,声明这个变量用的是“全局范围”内的$gg;
		
		return $gg -= 2;
	}
	
	echo $gg;            // 28 ;       函数未被调用时候,直接原值原样输出;
	
	echo bbb();         // 26;         函数被调用,执行函数体内语句,有关键词global声明在变量前,说明此时的变量用的(代表的)是全局变量;

    echo $gg;          //  26;         由于函数执行的时候用的是全局变量,所以全局变量$gg 也跟着发生了变化;

?>


3、超全局变量:


    (1)、超全局变量在脚本中,任何一个地方都能被访问使用,任意一层函数,任意一个角落;

    (2)、超全局变量主要有$GLOBALS、$_GET、$_POST.......都是以数组的形式展现;

<?php

     $a = 23;
     
	 $b = 55;
	 
	 print_r($GLOBALS);

?>     

上述代码执行,打印结果有一部分为:  [a] => 23;   [b] => 55; 即:$GLOBALS变量中,存储了页面内的所有的全局变量;变量名($a,$b)为

全局变量 变量名($a,$b)为超全局变量$GLOBAL中的健名([a],[b]);

<?php

     $a = 23;
     
	 $b = 55;
	 
	 function ccc(){
		 
		 $GLOBALS['a'] += 2;
		                     //  注意:此时没有函数内的$a;即return $a; 的时候会报错,此时的返回return的$a,应该是函数内部的$a,压根都没有进行声明都直接突然返回了(所以会报错),而上一句则是执行的超全局变量,改变的是函数外的全局变量$a;
	 }
	 
	 
	 echo $a;   //23
 
     echo ccc();   //  此时没有返回值,函数内只运用、执行、改变了超全局变量;

     echo $a;   //25   超全局变量,即变的就是其自身,只不过在函数体内部执行了改变了;

?>


4、注意:常量一旦被声明后,也能在函数内,脚本中的任何一个位置被引用;



  • 1
    点赞
  • 1
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

prdslf001001

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值