php之变量

php变量

变量是用于存储信息的一种“容器”,而php最为一种类似于java等编程语言的语言,同样需要变量来承载一些数据,在php中我们经常使用字母来表示变量。
与代数类似,我们可以给php变量赋予某个值或表达式,变量的长短也可以变化,但是要遵循以下几个规则:
php变量规则

  • 变量以 $ 符号开始,后面跟着变量的名称,如 $a ;
  • 变量名必须以字母或者下划线字符开始,如$a $_a 而不能是 $1a
  • 变量名只能包含字母数字字符及下划线(即A-z、0-9、_)
  • 变量名不能包含空格
  • 变量名是区分大小写的(如 $y 和 $Y是两个不同的变量)

创建或声明php变量

php没有特定的声明变量的命令,变量在第一次赋值的时候被创建,当我们在给一个文本值给变量时,我们需要在值的两边加上双引号。
在这里插入图片描述
在上面的语句执行中,变量txt将保存值hello world,变量z将变量x y的值相加保存。
从上面的例子我们看到,我们并没有声明变量的数据类型。php会根据变量的值来判断并转换为正确的数据类型,而不用像我们在其他编程语言中一样在使用前需要声明定义变量的类型和名称。

变量的作用域

变量的作用域是脚本中变量可以被使用的部分
在php中有四种不同的变量作用域:

  • local
  • global
  • static
  • parameter
局部和全局作用域

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分进行访问,要在一个函数中访问一个全局变量,,需要使用global关键字。而只是在php函数内部声明的变量是局部变量,只能在函数内部进行访问。换种说法,定义在函数外部的就是全局变量,它的作用域从定义处一直到文件尾部,函数内定义的变量就是局部变量,它的作用域为函数定义范围内。函数之间的作用域互不影响,,在函数内要访问外部的变量需要使用global关键字或者使用$GLOBALS[index]数组。在php函数中有独立的作用域,所以局部变量会覆盖全局变量,及时局部变量中没有全局变量相同的变量也会被覆盖。如:

在这里插入图片描述
在这个实例中我们看到变量x为全局变量在函数myTest内我们没有使用global关键字在输出时就会报错,并且无法输出x的值,而变量y在函数内作为局部变量可以正常输出,但是在函数外部依然无法正常输出。

php global关键字

global关键字主要用于函数内访问全局变量,在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上global关键字:
在这里插入图片描述
依旧是上面的这个实例,我们在函数内使用 global $x后函数内可以正常输出变量x的值。
php将所有的全局变量存储在一个名为 $GLOBALS[INDEX]的数组中,index保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。如下面这个实例:
在这里插入图片描述
同样这个实例可以写成这样:
在这里插入图片描述
注意:我已将上面一个实例中的函数内的表达式注释掉。

Static作用域

当一个函数完成时,它的所有变量通常会被删除。然后有时候希望可以使用到这个局部变量,不想被删除,这是我们就可以在第一次声明变量是使用static关键字。我们要注意几点:

  • 函数体中的静态变量与全局中的静态变量不冲突,只有在关键字global作用下才会是局部与全局统一
  • 函数体中的静态变量在函数调用的时候指挥被初始化一次
    在这里插入图片描述
    (这边的的这个只是我的一部分理解,具体理解可以参考这个博客 https://www.cnblogs.com/52php/p/5658171.html ,博主用c语言来解释了static关键字,感觉还不错)
参数的作用域

参数是通过调用代码将值传递给函数的局部变量,蚕食是在参数列表中声明的,作为函数声明的一部分:
在这里插入图片描述
总结一下:php的变量要区分大小写,大小写分代表这不同的变量,变量只能以字母或下划线开始,可以包含字母数字及下划线,php中不需要特别的去创建变量,变量在第一次赋值时就会被创建,变量的作用域要区分,全局变量在函数内使用要加上global关键字,static关键字的用法需要尤为的注意。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值