• PHP函数(一)-变量


    1.全局变量

    <?php
    	$a = 1;
    	$b = 2;
    	function test(){
    		echo $a + $b."<br>"; //运行结果为0
    	}
    	test();
    	echo $a + $b; //运行结果为3
    ?>
    

     可见,在函数中无法直接调用全局变量

    test()函数中的变量$a和$b都没有被赋值,进行空值运算,得到结果为0

    在函数中使用全局变量可以使用global和$GLOBALS数组

    使用global

    <?php
    	$a = 1;
    	$b = 2;
    	function test(){
    		global $a,$b;
    		echo $a + $b."<br>"; //运行结果为3
    	}
    	test();
    	echo $a + $b;  //运行结果为3
    ?>
    

    使用$GLOBALS数组

    <?php
    	$a = 1;
    	$b = 2;
    	function test(){
    		echo $GLOBALS['a'] + $GLOBALS['b']."<br>"; //运行结果为3
    	}
    	test();
    	echo $a + $b;  //运行结果为3
    ?>
    

     2.局部变量

    <?php
    	function test($a){
    		$b = 1;
    		echo $a + $b."<br>"; //运行结果为3
    	}
    	
    	test(2);
    	echo $a + $b; //运行结果为0
    ?>
    

     函数外不能访问函数内定义的变量,所以函数外进行空值运算,结果为0

    如果函数外部需要调用函数内的变量,需要通过return将其值传回到主程序区块

    <?php
    	function test($a){
    		$b = 2;
    		return $a + $b;
    	}
    	$c = test(1);
    	echo $c;  //运行结果为3
    ?>
    

     3.静态变量

    函数中的局部变量都是动态地分配储存空间的,在函数结束调用后自动释放。如果定义静态变量,则函数结束运行后,变量还会保存在内存里,当函数再次执行时,静态变量将接着上次的结果继续运算。

    通过static将局部变量设置为静态变量

    <?php
    	function test(){
    		static $a = 0;
    		echo $a;
    		$a ++;
    	}
    	test(); //运行结果为0
    	test(); //运行结果为1
    	test(); //运行结果为2
    	test(); //运行结果为3
    ?>
    
  • 相关阅读:
    openfl使用64位的ndk时,编译报错的问题!
    Haxe是何物?
    jsp中如何判断el表达式中的BigDecimal==0
    如何在springmvc的请求过程中获得地址栏的请求
    【原创】【滑块验证码】
    【原创】【aes加密】
    【原创】【qrcodejs2】生成二维码
    【原创】【ueditor】监听内容
    【原创】【ueditor】内容过多时 菜单控件遮挡页面
    js杂谈
  • 原文地址:https://www.cnblogs.com/sch01ar/p/7887489.html
Copyright © 2020-2023  润新知