php变量与常量

webpenson, 26 九月, 2021

php变量与常量的定义

  • 在php文件中,以一个名称替代它代表的值(数字,字符串等),并且在php文件不断执行的过程中,它替代的值可以变化,这个名称就是一个变量。
  • 而常量则是定义后,就不能变化了。
  • 变量和常量是一个桶,里面装着的是我们php文件执行中的信息(数值,字符串其他等),每个桶都一个名字,就是变量名或者常量名。

 

php变量与常量的命名区别

  • 变量命名规则:变量名前要加$,以字母或者下划线开头,后面也只能包含大小字母或数字或下划线,其中不能有空格,另外区分大小写。在php中,以下划线开头的变量通常都是php自带的变量。
  • 常量命名规则:是一个字符串,通常使用大写

 

php变量与常量的声明

  • php是弱类型语言,在php中,变量不用声明,直接赋值就可以使用了
  • 常量通过 define 命令来声明 格式:define("常量名",常量值);

 

php变量与常量的作用域

  • 内置超全局变量
    • 在代码任何位置都能访问到
    • $GLOBALS
      • 包含全局变量的数组
    • $_GET
      • 包含所有通过GET方法传递给代码的变量的数组
    • $_POST
      • 包含所有通过POST方法传递给代码的变量的数组
    • $_FILES
      • 包含文件上传的数组
    • $_COOKIE
      • 包含cookie变量的数组
    • $_SERVER
      • 包含服务器环境变量的数组
    • $_ENV
      • 包含环境变量的数组
    • $_REQUEST
      • 包含用户所有输入内容的数组(包含$_GET、$_POST和$_COOKIE)
    • $_SESSION
      • 包含会话变量的数组
  • 常量声明后具有全局性,在函数内外都可访问
  • 全局global
    • 在所有函数外定义的变量,可以被函数外任何一部分访问,函数内要访问要使用global
    • 比如定义$x这个全局变量后,要在一个函数内使用时,先要写global  $x;这个语句,后面就可以在这个函数里面使用这个变量了。
    • php中,所有全局变量都储存在$GLOBAL S[index]这个数组里,index为变量名,使用这个数组,就不用在函数内先写global  $x;这个语句了
  • 局部local
    • 在函数内定义的变量,只能在函数内访问,不同函数的变量名可以重复
  • 静态static
    • 是函数内的变量,函数外无法访问。正常函数结束后,函数内的变量会被删除,而在赋值变量的前面使用static后,在第一次执行函数后一直保留这个变量及其值,下一次执行这个函数时,会直接使用这个变量及其值。
  • 参数parameter
    • 函数外无法访问,本函数终止时失效。

 

内置常量

  • php预定义了很多系统内置常量
    • _FILE_
      • 文件的完整路径和文件名,若引用文件(include或者require)则在引用文件内的该常量为引用文件名,而不是引用他的文件名
    • _LINE_
      • php程序行数,若引用文件(include或者require)则在引用文件内的该常量为引用文件行数,而不是引用他的文件行数
    • PHP_VERSION
      • php程序版本
    • PHP_OS
      • 执行php解析器的操作系统名称
    • TRUE
      • 真值(true)
    • FALSE
      • 假值(false)
    • E_ERROR
      • 指到最近的错误处
    • E_WARNING
      • 指到最近的警告处
    • E_PARSE
      • 指到解析语法有潜在问题处
    • E_NOTICE
      • ?发生不寻常但不一定是错误处
    • _DIR_
      • 文件所在的目录
    • _FUNCTION_
      • 函数的名称,php5开始返回该函数被定义时的名字,并且区分大小写
    • _CLASS_
      • 类的名称,php5开始返回该类被定义时的名字,并且区分大小写

 

可变变量以及变量的引用

$a="1";

$b="a";

$$b为可变变量 其变量值为“1”,这里$$b相当于$a相当于“1”

$a="2";

$a= &$b;

这是变量的引用,相当于给变量a起了个别名b,变量b和变量a指向同一个变量,修改任何一个,另外的一个也会改变,或者说常量是一个桶,俩个变量名指向同一个桶

 

评论