量
量就是内容,就是数据。
变量
1. 什么是变量?
可以被改变的量
php中的变量规则
1. 必须以$符号开始,后面跟变量名
2. 变量名:以字母或者下划线开始,后面可以跟数字
3. php中可以使用中文变量
4. PHP中变量区分大小写
注意:PHP语言是一种弱类型语言,php中的变量可以存储任意类型的数据。
2. php定义语法
$变量名 = 值(没有数据类型限制);
3. 使用php变量
1. 凡是需要使用变量的地方,可以直接使用$符号后跟变量名
2. 变量在使用之前必须先定义好(赋值)
4. 变量的增删改查
删除变量需要使用到php的一个函数:unset
语法:unset(变量);
常量
1. 什么是常量?
常量是一个经常用,但是不会改变的量。
2. 常量规则
a) 定义规则:不是通过$符号定义,而是通过define函数定义
语法:define(‘常量名’,常量值);
b) 语法规则:不需要$符号,其他规则类似,通常,常量的定义都是大写字母和下划线
c) 使用规则:常量一经定义不可修改
d) 常量的语法规则比变量要简单(宽松)
3. 使用常量:直接使用常量名字即可
4. 修改常量:不允许
直接修改
使用define重新定义
删除常量
5. 松散常量
定义
使用:特殊字符组成的常量是不能直接使用的,要使用必须通过constant函数实现
语法:constant(‘常量名’);
常量的使用
1. 一个经常要用,但是不允许改变的数据,用常量保存
2. 常用往往用于访问限制:判断函数:defined(‘常量名’),如果一个常量被定义过了,返回true,如果没有定义过返回false
系统预定义变量
系统已经定义好的,用户可以直接使用的变量。(用户也可以修改)
$_POST:用户接收用户从浏览器使用post方式提交的所有数据,是一个数组
$_GET:接收浏览器以get方式提交的所有数据,是数组
$_REQUEST:接收浏览器post或者get或这个cookie数据,也是数组
$_FILES:浏览器文件上传的数据
$_SESSION:会话技术之一session的数据
$_COOKIE:会话技术之一cookie的数据(浏览器携带到服务器)
$GLOBALS:全局变量的数组(所有的全局变量都可以在该数组中找到)
$_SERVER:服务器信息和浏览器信息
如何查看一个数组?var_dump(数组)
访问单个数据
作业:将$_SERVER中认为有用的数据给整理一遍
$_ENV:环境
预定义常量
系统已经定义好的常量
PHP_OS:当前PHP运行的操作系统
PHP_VERSION:当前PHP版本
PHP_INT_SIZE:当前PHP中整型所占用的内存空间(字节为单位)
PHP_INT_MAX:当前php中能够表示的最大整型数值
魔术常量
表示方法是以双下划线开始和双下划线结束
魔术常量在不同的位置代表不同的数据
__FILE__:当前文件的绝对路径,包含文件名
__LINE__:当前行的行号
__DIR__:当前文件的绝对路径,不包含文件名
__FUNCTION__:当前函数的名字(只能在函数内部使用)
__METHOD__:当前方法的名字(只能在方法内部使用)
变量和常量内存示意
内存指的是在系统运行的时候,RAM。
内存分为多个部分:栈,堆区,代码段,数据段
栈:程序能直接操作的唯一内存,栈比较小,但是速度较快
堆:一大块连续的内存空间,程序不能直接操作,空间大,地址连续,但是效率低
代码段:专门存放代码的内存地址,系统会根据代码段里存储的代码逐行的执行代码
数据段:存放数据的地方,数据段又可以分为多个部分
全局区:存放全局数据和局部数据
静态区:存放静态变量和常量
php代码执行过程
简单代码执行内存分析
变量传值
变量传值方式分为两种:值传递和引用传递
值传递
将一个变量的值复制一份,然后传递给另外一个变量,内存中会存放两份数据。
引用传递
将变量的所指向的内存地址赋值给另外一个变量。
语法:$a = &$b;
内存分析
可变变量
变量可以变,变量所对应的值刚好是另外一个变量的名字,再加上一个$符号之后,就可以获取到对应变量的值。
数据类型
数据类型是系统根据自然界中人们所对事物的分类,在系统内部的一种体现。
php中对数据类型如何分类?
标量数据类型(基本),复合数据类型,特殊数据类型
php中的数据类型都是用来规范数据本身而不是变量本身(PHP是弱类型语言)
标量数据类型
标量数据类型又分为四类:整型,浮点型,布尔型,字符串型
整型
用来描述整数,int或者integer
$a = 100; //a是一个整型变量(a的值是一个整型数据)
可以使用变量保存其他进制数据:八进制和十六进制
$num1 = 0777;
$num2 = 0xffff;
强制按进制进行输出:printf
语法:printf(“输出字符串携带输出格式”,要输出的参数列表)
PHP中的整型占4个字节32位,最大数值是21亿多,超出php能表示的最大范围之后,数据类型会变成浮点型。
浮点型
float或者double关键字
float:占用4个字节,单精度,能够保证的有效的精确数位数比较小,大概是7位左右,能表示最大范围大概是10^38
double:占用8个字节,双精度,有效的精确数位数比较大,大概是15位左右。
在php中没有单精度,都是双精度(占用8个字节)
超过精度部分会继续四舍五入
整型与浮点型存储数据的变化
整型与浮点数的应用
需要精确的表示一个数值的时候,但是数值又不是很大的情况下使用整型
需要一个大概的值,但是数据量又很大的情况下使用浮点型
布尔型
布尔型就只有两个结果:true和false,通常布尔类型都是用于判断。使用bool或者Boolean
大部分的数据进行类型转换后都会变成布尔的true,但是有少部分是false
FALSE,0,0.0,’’,’0’,空数组,null值
字符串型
用一系列字符来表示的数据。
定义字符串类型的方式有三种:单引号,双引号和定界符
单引号:只能解析较少的转义字符:’,\
双引号:能解析较多的转义字符: ”,解析变量
定界符:以<<<定界符标识,中间是字符串内容,最后跟定界符标识结束
定界符使用规则
1. 左尖括号后必须跟定界符标识,标识的右边不能有任何内容包括注释和空格
2. 定界符内部不能写注释:写了也没用,会被照样输出
3. 右定界符必须顶格:靠近最左边
4. 右定界符的右边不能有任何多余的内容:包括注释和空格
定界符结构:定界符本身模拟的是单引号和双引号
定界符分为两种:heredoc,nowdoc
heredoc:模拟的是双引号
nowdoc:模拟的是单引号,nowdoc就是给左定界符加上单引号
复合数据类型
复合数据类型:数组和对象
特殊数据类型
空类型(null)和资源
NULL:空数据类型
变量被unset掉
变量直接赋值为null
资源:PHP操作外部数据(mysql连接,mysql结果集,文件操作…)
作业:
1. 定义两个变量:$a = 10,$b = 20;使用三种方式实现两个变量的交换。$a = 20,$b = 10。