首先,我们来看看八种数据类型划分有哪些?
数据类型划分:
基本类型(标量类型):
- 整数类型:int integer
- 浮点数类型:float double
- 字符串类型:string
- 布尔类型:bool Boolean
复合类型:
- 数组:array
- 对象:object
特殊类型:
- 空类型:null 这种类型中只有一个数据,那就是null,不区分大小写。
- 资源类型 :resource 是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。
了解了之后, 这几种大家应该在熟悉不过了吧?但深入的知识点,还需自己探究跟摸索。接下来了解获取数据(变量)的类型函数,单引号和双引号的字符串区分。
获取数据(变量)的类型函数:
- getType($变量名) 返回类型 (不建议使用,了解一下即可)
- var_dump($变量名) 输出类型 数据内容 (长度) (熟悉,PHP 常用来做精密调试)
单引号和双引号的字符串区分+转义符:
单引号和双引号的字符串区分:在以前分享中有简单的介绍,接下来分享的主要是转义符。
转义符:
单引号字符串: 最后一个\ 要转义
- 转义符: \\ \'
双引号字符串:
- 转义符 : \\ \" \n(换行),\r(回车),\t(tab)
- \$ 表示“$”,取消在双引号 字符串 的 变量起始含义
// 单引号字符串:
$v1 = 123;
$str1 = 'ab\\cd\'efg $v1';
echo $str1; // ab\cd'efg $v1
// 双引号字符串:
$v1 = 123;
$str2 = "ab\"cd\nfg\tabcd \$v1";
echo $str2; // ab"cd
//fg abcd $v1
定界符:
双引号的 可以转义 识别变量 单引号没有
取一个类似常量名的名字 以<<<加该名字开始 用该名字及分号结束 只能出现该名字及一个分号 (里面的内容都可以出现)
$str3 = <<<"AVBD"
abcddsff,;
AVBD;
echo "<br>$str3";
拓展:
int 、integer的区别:
- int:基本数据类型,默认值为0。
- integer:类,默认值为null。
float、double 的区别:
- float:单精度,有效数字位7位。
- double:双精度,有效数字位16位。
bool、Boolean的区别:
- bool:基本数值。
- Boolend:对象。
资源类型:resource
- is_resource() 函数测定一个变量是否是资源。
- get_resource_type()函数则返回该资源的类型。
类型的转换:
自动转换:又"运算符"或类似运算符的语句来决定的
需要某种数据类型,而给出的数据不是此类型,会发生自动转换,将该类型转换成目标类型
//常见的自动转换:
$v1 = 1 + 2; // 3
$v2 = 1 + "2";// 3
$v3 = "1" + 2;// 3
$v4 = "1" + "2";//3
//在PHP,算术运算符,就只是对数值就行计算
$v5 = 1 + "2asd";//3
$v6 = "1" + "2asd";//3
$v7 = "1asd" + "2asd";//3
$v8 = "1asd" + "asd2";//1
$v9 = "asd1" + "asd2";//0
//可见 只识别字符串前面的数字部分
$v10 = 1 + true;//2
$v11 = 1 + false;//1
强制转换:
$v1 = 123;
$s1 = (float)$v1;//将$v1 的值转换为float类型
$s2 = (string)$v1;//将$v1 的值转换为string类型
echo "<br>s1 为";var_dump($s1);
echo "<br>s2 为";var_dump($s2);
简单讲述:
- 通常目标类型:int,float,string,bool,array,object
- 强制转换类型,并不改变该变量的本身数据或类型,
对应有一个语法是直接改变原本的数据以及类型;
// settype($变量名,目标类型);
$v2 = 123;
echo "<br>v2未转类型为";var_dump($v2);
setType($v2,"string");//直接转换$v2的类型为string
echo "<br>v2为";var_dump($v2);// v2为string(3) "123"
在转义符案例中:php在浏览器输出的你所见到结果是经过浏览器解析而得到的,需要查看源码文件或者加上<pre>标签得到的才是理想的答案。
integer的拓展知识:自动拆箱和自动装箱。(有兴趣了解一下,对以后稍有用处)