5.3.1 PHP局部变量

PHP变量的范围

•变量的范围
–当主程序调用函数时,PHP 会暂时停止目前主要程序流程的运行,并传递必要的运算参数给目标函数使用,以执行函数的程序码片段。
–在函数执行结束后,函数会回传执行结果所得的数值,并将执行流程转回原本主程序中断的地方,继续执行运作。
•变量的能见度
–所谓变量的能见度,意指变量在程序中的可作用范围。当一个变量执行赋值动作后,会随着声明局部的差异,而有不同的作用范围。大致上来说变量会依据声明的局部分为下列两种:局部变量和全局变量

局部变量(内部变量)
在函数之中声明的变量就是局部变量,并且该变量只有在函数范围之中才能加以使用。如果其它程序局部需要调用使用该变量值时,必须透过「return」指令,来将其传回至主程序区块以作后续处理。

<?php     $a=0;     function print_A(){          $a = 3; //定义局部变量         echo "在函数中显示局部变量 a 值: $a <p>";         return $a;      }     $b = print_A();     echo "在函数外显示局部变量 b 值: $b <br>";      echo $a;  ?> 

全局变量

在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的程序片段,所以局部变量会复盖全局变量的能见度,因此在函数中并无法直接调用使用全局变量。
函数中若要使用全局变量时,必须要利用global关键字定义目标变量,以告诉函数主体此变量为全局。

     <?php        $A=“Hello !!”;         //定义全局变量         function print_A() {     //定义函数 print_A()                global $A;            //利用 global 关键字声明变量 A 为全局变量                echo $A;         }         print_A();         ?> 

也可以使用预定义的全局变量数组$GLOBALS.这是一个特殊变量在程序运行时自动创建。格式:echo $GLOBALS[“A”];

注意事项

•在函数中声明全局变量时,其名字要与全局变量一致
•通过unset($var)可以手动删除变量,变量会在内存中被释放,也就不在全局作用域中了。
•使用require与include包含不会影响作用域
•通过参数列表传递给函数的变量,对于函数来说是局部变量,除非在传递时带有&引用符号

例:test.php

<?php      if(true) {         $age = 30;     }       echo $age;      函数内部声明的变量, 只能在函数内部调用, 这就是--------局部变量      函数的参数,就是一个局部变量, 声明成形成的, 可以在调用时,给值, 传值       function demo($sex) {         $age = 30;            echo "高老师很帅{$age}, 是{$sex}<br>";     }      demo("男");      echo $sex; 

始发于简书:caoyuan

点赞

发表评论