PHP数据类型

数据类型是针对各种(变量)值而言,而不是针对变量本身。

PHP有三大数据类型:标量,复合,特殊
标量数据类型(简单数据类型)
  整型:int或者integer,整数,包括正整数,负整数和0
    $num = 5; //说num变量的数据类型,其实指的是num变量所指向的值5的数据类型
    整型在系统内存中占4个字节保存数据。

PHP还支持定义其他进制:八进制和十六进制
   八进制:数值以0开始,后面跟八进制序列
        $num = 011; //十进制9
   十六进制:数值以0x开始,后面跟十六进制序列
   0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
       $num = 0x11; //十进制17

PHP数据类型

浮点型:float,double,精度
    通常,float占用4个字节保存数据,单精度,表示7个精度
   double占用8个字节保存数据,双精度,表示15个精度
   实际上PHP中float也是占用8个字节保存数据。
   $float = 1.0; //普通的带小数的浮点数
   $float = 2.3e3; //科学计数法保存的浮点数

PHP数据类型

因为浮点数会丢失精度,所以通常不用浮点数比较大小。

什么情况下使用浮点型?什么情况下使用整型?
一般对于精度要求不是那么高的,但是数值又非常大的可以使用浮点数,其他情况下基本都不使用。

时间戳:从1970年到当前时间的秒数称之为时间戳(格林威治时间)

PHP提供了一个函数:time()获得时间戳
PHP用来保存时间都是使用时间戳来处理,date函数可以将时间戳转化成时间
PHP数据类型

字符串:string,凡是带引号包好的字符都可以称之为字符串
  PHP中字符串的表示方式有三种:单引号,双引号,定界符
   单引号:将字符串用单引号包裹起来
   双引号:将字符串用双引号包裹起来
PHP数据类型

单引号和双引号的区别?
区别有两点
  1.双引号中能够使用更多的转义字符\r\n\t
   单引号:\’
   双引号:\”\r\n\t
PHP数据类型  

2.双引号中能够解析PHP变量
PHP数据类型

双引号解析变量注意
PHP数据类型

如何解决?
1.在变量后面增加一个空格
2.将变量用大括号包裹{}
PHP数据类型

定界符:使用一种特殊的符号(<<<),并且增加一对起始和结束标识来包括字符串
   语法:$str = <<< EOD
     //字符串内容
   EOD;
PHP数据类型

定界符使用规则
1.定界符的边界符号必须成对
2.右定界符必须顶格
3.两个定界符后面都不能跟任何其他内容

定界符的意义
1.为了让双引号对应的字符串在编写的时候方便查看
2.定界符能够在输出之后保证原来的数据格式

heredoc结构就是以上所讲的定界符,对应双引号功能
   $str = <<< EOF
EOF;
nowdoc结构也是以上结构,只是对应单引号功能
   $str = <<< ‘EOF’
EOF;

有人认为单引号比双引号的字符串效率要高,因为单引号不需要去解析其中的变量等内容,只要直接输出即可。

布尔:bool和Boolean,布尔类型只有两个值TRUE和FALSE
PHP数据类型

哪些数据会被当做FALSE处理?
需要通过比较的形式来判断是否为FALSE
0:整型0
0.0:浮点0
‘0’:字符串0
null:空
‘’:空字符串

复合数据类型
 数组
 对象

特殊数据类型
  NULL:定义的变量的值为NULL或者变量被删除



进制转换
二进制转十进制
10101010 ————-》170
PHP数据类型

十进制转二进制
65 ————-》 01000001
PHP数据类型

十进制转十六进制
  相除法
八进制转十进制
 乘幂
PHP数据类型



系统预定义变量
系统定义的变量称之为预定义变量,预定义变量有9个:
$_POST:接收用户表单post方式提交的所有数据
$_GET:接收用户表单get方式提交的所有数据
$_REQUEST:接收用户get方式,post方式提交的数据,还有cookie数据
$_FILES:接收用户上传的文件信息
$_SESSION:存放session数据(存放在服务器)
$_COOKIE:存放cookie数据(存放在浏览器)
$GLOBALS:全局变量
$_SERVER:保存服务器信息
小作业:对$_SERVER预定义变量掌握几个常用的数据
$_ENV:保存系统环境信息



系统预定义常量
PHP_OS:操作系统内核
PHP_VERSION:当前PHP的版本
PHP_INT_SIZE:int类型所占的字节数
PHP_INT_MAX:int类型能表示的最大值
魔术常量:可以自动变化的常量
__FILE__:当前脚本的文件路径(绝对路径)
__LINE__:当前所在的行数
__DIR__:当前脚本所在的目录(PHP4以后才有)
__FUNCTION__:当前函数的名字
__METHOD__:当前方法的名字(类中的函数)



可变变量
通过一个得到一个变量的值,将该值再次当做一个变量名从而得到另外一个变量的值。
PHP数据类型



传值
变量间的赋值
变量间的传值分为两种:值传递和引用传递
值传递:将一个变量的值赋值一份,然后赋值给新的变量
PHP数据类型

一个变量的变更不会影响另外一个变量的变更

引用传递:将一个变量的地址赋值给新的变量
在给变量赋值的时候,使用地址符号&获得一个变量的地址。
PHP数据类型

交换变量值(两个变量都是整数)
1.使用第三个变量来是想两个变量的值的交换
2.不使用第三个变量交换两个变量的值