数据类型分类
1) 标量类型
布尔型,整型,浮点型,字符串型
2)复合类型
数组,对象
3)特殊类型
资源,null
布尔型
true 真的 false 假的
1 <?php 2 //布尔型 true false 3 $a = true; 4 var_dump($a); 5 $b = false; 6 var_dump($b); 7 //使⽤echo打印变量值为true的这个变量得到的内容是1 8 echo $a; 9 echo '<hr/>'; 10 //使⽤echo打印变量值为false的这个变量得到的内容是什么都没有 11 echo $b;//不显示
平时我们不会使用 echo 来打印布尔类型数值。
使用echo打印变量值为 false 的这个变量得到的内容是什么都没有,不是我们想象中的0.
下面的值会认为是 false ,其他值被认为是 true
布尔型false
整型的 0
浮点型的 0
空字符串和字符串 0
空的数组
特殊类型null
建议:打印布尔类型用 var_dump var_dump 来打印
整型(int)
正整数 负整数 0
整型的最⼤值,相对于32位操作系统数值 2147483647
整型的最⼩值 ,相对于32位操作系统数值 -2147483647
整型的值不能超过最大值最小值,如果超过将解析为float类型
可以用二进制 八进制 十进制 十六进制 表示整型
如果将整型转换为布尔型,除0以外全部是true,而0会转换成false
1 <?php 2 $a = 10; 3 var_dump($a); 4 $b = -10; 5 var_dump($b); 6 //最大值 7 $c = 2147483647; 8 var_dump($c); 9 //最小值 10 $d = -2147483647; 11 var_dump($d); 12 echo '<hr/>'; 13 //十进制 二进制 八进制 十六进制 14 // ⼆进制 0 1 转 10进制 15 // 1*2^2+1*2^1+1*2^0 16 $a = 0b111; 17 18 //八进制 0-7 转 10 19 //7*8^1 + 7*8^0 20 $a = 077; 21 //十六进制 前面0x 22 //0-9 a b c d e f 23 $a = 0xff; 24 //最终打印出来的都是⼗进制 25 var_dump($a); 26 //如果将数字全部变为布尔型 那么0 是false 27 //其余数字都是true 28 //非0即真 29 $b = 0; 30 var_dump((bool)$b);
浮点型(float)
就是我们生活中的小数
科学计数法:1E7 ----> 1*10的7次方
浮点数表示为数字的最⼤值1.7E308
浮点数表示为数字的最⼩值是-1.7E308
超出最大最小数字范围值出现 INF -INF 无穷大
1 <?php 2 //浮点型,⼩数 3 $a = 0.1; 4 var_dump($a); 5 $b = 1.234; 6 var_dump($b); 7 $c = 1E7; //1*10^7 8 var_dump($c); 9 $d = 7E-3; //7*10^-3 10 var_dump($d); 11 //超出最⼤范围会变为INF(⽆穷⼤) 12 var_dump(1.7E309); 13 //超出最⼩范围会变为-INF(负⽆穷⼤) 14 var_dump(-1.7E309);
字符串型
字符串就是用单引号和双引号和定界符包含的字符,就是字符串。
字符串没有长度限制
单引号:
1. 单引号不解析变量 ,效率高,推荐使用
2. 单引号不能包含单引号,如果需要显示的单引号需要加上转义字符 \
3. 单引号中如果用转义字符,只能转义字符本身和单引号
4. 单引号中如果试图使用特殊字符,反斜线会被显示出来
双引号:
1. 双引号解析变量
2. 双引号如果解析变量,请在变量后加上一个空格或者 {}
3. 双引号中不能包含双引号,如果需要显示的双引号需要加上转义字符 \
4. 双引号中如果使⽤转义字符,只能转义字符本身和双引号
5. 双引号可以解析特殊字符
6. 双引号可以插⼊单引号,单引号中可以插入双引号(可以互插)
7. 7.双引号不能插⼊双引号,单引号不能插入单引号(不能自插)
1 <?php 2 $a = '强'; 3 $b = '去学校厕所,就是那种坑都"是连通的 各个位置墙隔开,$a刚开始脱裤掉了个 4 五⻆钱,\'疼 5 了下,\\没办法继续脱裤⼦ 咣当⼜掉了⼀块钱 悲痛欲绝,后的坑来了句话, 6 \n\t哥你把这 7 当许愿池了!!!!'; 8 echo $b; 9 echo '<hr/>'; 10 $d = "⼤B哥"; 11 $c = "亲爱的{$d},你知道吗?我'喜欢你好久了,在第⼀次⻅到你的时候我就控制不了 12 \\我了 \"每每 13 看你 我的内就翻腾的 在胃翻滚有\n\t种想吐的感觉"; 14 echo $c;
php常用转义字符
定界符:
声明方式,在定界符后给一个标识符开始,然后以这个标识符结束。
1 $str=<<<aaa 2 3 内容 4 内容 5 ..... 6 7 aaa;
注意:
1.在定界符结束标识必须写在第⼀列上,且必须作用一个单行显示,后⾯不能有任何字符。
2.开始标识后面不能出现任何内容包括空格等都不可以。
3.定界符的作用和双引号一样。
4.常用于文本和大段落的数组输出的时候使用。
5.标识符命名规则,遵循php命名规则,字母数字下划线组成不能以数字开头。
1 <?php 2 $a = 'xxboy'; 3 $str =<<<TF 4 {$a}每天 左 右⼿⼀个慢动作 5 右左 慢动作重播 6 这歌 "给我快乐" 7 有没有爱上我 8 跟着我 左 右 个慢动作 9 右 慢动作 重播 10 这歌给我快乐 11 TF; 12 echo $str;
数组类型
我们用array来声明数组
根据下标区分
关联数组
索引数组
混合数组
根据维度来区分
一维数组
二维数组
多维数组
1 <?php 2 //根据下标来区分我们的数组 3 //下标全是数字的我们管他叫做 索引数组 4 $arr = array(1,2,3,2,3213,213,123,123,123,123); 5 var_dump($arr); 6 7 //下标为字符串,我们管他叫做关联数组,关联数组一般都是有意义的。 8 $arr1 = array('name'=>'妖妖','age'=>52,'sex'=>'妖'); 9 var_dump($arr1); 10 //下标有字符串,也有数字,我们管这种叫做混合数组。 11 $arr2 =array('name'=>'俊俊','age'=>25,'sex'=>'女','俊俊才华横竖都溢'); 12 var_dump($arr2); 13 echo '<hr/>'; 14 //根据维度来区分 15 //⼀维数组 16 $arr3 = array(1,3,3,33,3); 17 var_dump($arr3); 18 //⼆维数组 19 $arr4 = array( 20 array(1), 21 array(2), 22 ); 23 var_dump($arr4); 24 //多维数组 25 $arr5=array( 26 array( 27 array(1) 28 )); 29 var_dump($arr5);
资源类型
什么叫资源?
都说我手里有一些资源,看似好像就是一些文件或者资料什么的,站在“资源”的⻆度讲,
它的作用是什么?连接两者的通道。
php中的资源类型通过php函数打开一个文件或者图片或者数据库连接(php5.4以前连接是资
源,php5.4以后连接就是对象)等产生
null类型
null类型是php中特殊的类型,神⻢都是浮云的意思。
null 不区分大小写 NULL
35 var_dump($arr5);
下列情况被认为是null
将变量直接赋值null
声明变量尚未被赋值
被unset函数销毁的数值
1 <?php 2 //$img = imagecreatetruecolor(500,500 // var_dump($img); 3 4 //$file = opendir('../A12_PHP01'); 5 //var_dump($file); 6 7 //$a = ''; 8 //var_dump($a); 9 $a = null; 10 var_dump($a); 11 var_dump($b); 12 $c = 100; 13 unset($c); 14 var_dump($c);
检测变量是否被声明
1)isset() 检测变量是否被声明过,如果声明过,返回true,如果没有声明过返回false
2)empty() 判断变量的值是否为空(零,假,null),如果是返回ture,否则返回false
1 <?php 2 $a = 100; 3 var_dump(isset($a));//true 4 var_dump(empty($a));//false 5 echo '<hr/>'; 6 $b = 0; 7 var_dump(isset($b));//true 8 var_dump(empty($b));//true; 9 echo '<hr/>'; 10 $c = null; 11 var_dump(isset($c));//false 12 var_dump(empty($c));//true;