php变量
来源:互联网 发布:苹果电脑进水数据恢复 编辑:程序博客网 时间:2024/06/07 13:01
需求:了解php变量及其作用范围
1.什么是变量?
变量是用于存储数据的容器。变量是可变的。就像小学代数里面z=x+y。x和y就是变量。
看一个例子:
<?php $x=5; $y=6; $z=$x+$y; echo $z;?>
$x就是变量。该变量以$符号开始,后面跟着变量的名称。变量是区分大小写的。
其中$x=5,是声明变量。含义是将5保存在变量x中。声明变量就是告诉一下我这个变量的初始是5.仅此而已~
2.变量的作用域有哪些?
变量的作用域是变量作用(生效)的范围。
PHP 有四种不同的变量作用域:
- local(局部)
- global(全局)
- static(静态)
- parameter(参数)
局部和全局作用域
局部作用域
在函数内部定义的变量为局部变量。局部变量拥有局部作用域。仅能在函数内部访问。
全局作用域
所有函数外部定义的变量为全局变量。全局变量拥有全局作用域。要在一个函数中访问一个全局变量,需要使用 global 关键字。
<?php $x=5; // 全局变量 function myTest() { $y=10; // 局部变量 echo "<p>测试函数内变量:<p>"; echo "变量 x 为: $x"; echo "<br>"; echo "变量 y 为: $y"; //10} myTest(); echo "<p>测试函数外变量:<p>"; echo "变量 x 为: $x"; //5echo "<br>"; echo "变量 y 为: $y"; ?>
在以上例子中 myTest() 函数定义了$x 和 $y 变量。
$x 变量在函数外声明,所以它是全局变量.
$y 变量在函数内声明所以它是局部变量。
当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x 变量在函数外定义,无法在函数内使用。
然后我们在myTest()函数外输出两个变量的值,函数将会输出全局部变量 $x 的值,但是不能输出
那么如果要在一个函数中访问一个全局变量怎么办?
需要使用 global 关键字。
global 关键字
global 关键字用于函数内访问全局变量。
在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字
<?php$x=5;$y=10;function myTest(){ global $x,$y; $y=$x+$y;}myTest();echo $y; // 输出 15?>
Static 作用域
当一个函数完成时,它的所有变量通常都会被删除。
如果希望某个局部变量不要被删除。需要在第一次声明变量时使用 static 关键字.
<?phpfunction myTest(){ static $x=0; echo $x; $x++;}myTest();//0myTest();//1myTest();//2?>
每次调用该函数时,该变量将会保留着函数前一次被调用时的值。
参数作用域
参数是通过调用代码将值传递给函数的局部变量。
参数是在参数列表中声明的,作为函数声明的一部分。
<?phpfunction myTest($x){ echo $x;}myTest(5);?>
- PHP变量
- php变量
- PHP 变量
- PHP变量
- PHP变量
- PHP变量
- PHP 变量
- PHP 变量
- php 变量
- PHP 变量
- PHP变量
- php变量
- php变量
- PHP变量
- php变量
- php---变量
- php 变量
- PHP变量
- spring mvc高级篇(四):Spring+SpringMVC+Mybatis整合(采用注解优化)
- DNS
- this is water
- AtCoder Beginner Contest 070-D
- 一个数字加运算的验证码
- php变量
- JAVA第三天
- html5新特性
- Java8 Easy Introduction — 1. Lambda
- PATB 1011 A+B和C
- spring mvc高级篇(五):Spring+SpringMVC+Hibernate整合(采用泛型优化)
- 架构师能力
- 设计模式---代理模式
- spring mvc高级篇(六):Spring+SpringMVC+Hibernate整合(采用泛型+注解优化)