变量
预定义变量
预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量是数组)
• $GLOBALS — PHP中可所有的全局变量
• $_SERVER — 服务器和执行环境信息
• $_GET — 获取所有表单以get方式提交的数据
• $_POST — post提交的数据都会保存在此
• $_FILES — 用户上传的文件信息
• $_REQUEST — get和post提交的都会保存
• $_SESSION — session绘画数据
• $_ENV — 环境信息
• $_COOKIE —cookie会话数据
可变变量:
如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值 在变量前面再多一个$符号
例如:$a=’b’ $b=’b’ 则 $$a=’b’
补充:
在内存中,通常有以下几个分区:
栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快
代码段:存储程序的内存部分(不执行)
数据段:存储普通数据(全局区和静态区)
堆区:存储复杂数据,大但是效率低
变量传值(值传递):
将一个变量赋值给另外一个变量:变量传值
引用传递
常量:
常量与变量一样:用来保存数据
常量基本概念:
常量:const/constant,是一种在程序运行当中,不可改变的量(数据)
常量一旦定义,通常数据不可改变(用户级别)
在PHP中常量有两种定义方式(5.3之后才有两种)
- 使用定义常量的函数:define(‘常量名‘,常量值,【】)
- 5.3之后才有的:const常量名=值
常量命名规则
1.常量不使用$符号,一旦使用系统就会认为是变量
2.常量的名字组成由字母,数字。下划线组成,不能以数字开头
3.常量的名字通常是以大写字母为主,
4.常量命名的规则比变量要松散,可以使用一些特殊字符,该方式只能使用define定义细节
define和const定义的常量是有区别的:在于访问权限区别
定义常量通常不区分大小写,但是可以区分,可以参考define函数的第三个函数
bool define( string $name, mixed $value[, bool $case_insensitive = false] )
name:常量名。
value:常量的值;在 PHP 5 中,value 必须是标量( integer、 float、string、boolean、NULL)在 PHP 7 中还允许是个 array 的值。
case_insensitive
如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。比如, CONSTANT 和 Constant 代表了不同的值。
常量使用形式:必须赋值
有的时候还需要使用另外一种形式来访问(针对的是特殊名字的常量)
系统常量
例如:
PHP_VERSION:PHP版本号
PHP_INT_SIZE:整形大小
PHP_INT_MAX:整形能表示的最大值(PHP中整形是允许出现负数:带符号)
特殊常量(魔术常量)他们由双下划线开始+常量名+双下划线结束,这种常量称之为系统魔术常量;魔术常量的值通常会跟着环境变化,但是用户改变不了
DIR:当前被执行的脚本所在电脑的绝对路径
FILE:当前被执行的脚本所在电脑的绝对路径(带自己文件夹的名字)
LINE:当前所属的行数
NAMESPACE:当前所属的命名空间
CLASS:当前所属的类
METHOD当前所属的方法
变量和常量的使用:
- 凡是数据会可能变化的,那么肯定是用变量
- 数据不一定会变的,可以使用常量或者变量(变量居多)
- 数据不允许被修改的,一定用常量