数据类型
PHP 的 数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
php的字符串
单引号:直接用单引号引起来,所有内容都不会被解析。
双引号:直接用双引号引起来,包含的变量会被解析。
Heredoc结构
<<< 操作符:操作符后连接标识符(开始标识符)和换行符,标识符可以自定义,一般为EOD、EOF、EOT 等。
输入要引用的字符串,字符串可以正常解析变量,但不能解析函数。
最后下新的一行顶格写标识符(结束标识符),并连接分号结束,这一行里不允许有其他内容。
Nowdoc结构
结构与Heredoc结构类似,但其不同的是,Nowdoc结构类似于单引号引起来的字符串,所以Nowdoc结构中的所有内容都不进行解析,通常用于嵌入php代码或者其他大段包含很多特殊字符串的文本,在Nowdoc中这些内容都不需要转义,他的使用方法和 Heredoc结构也很类似,唯一不同的是开始标识符需要使用单引号引起来。
php的转义字符
PHP的整形
<?php
$a = 1234; // 十进制数
$a = 0123; // 八进制数 (等于十进制 83)
$a = 0x1A; // 十六进制数 (等于十进制 26)
$a = 0b11111111; // 二进制数字 (等于十进制 255)
$a = 1_234_567; // 整型数值 (PHP 7.4.0 以后)
?>
PHP的复合数据类型
复合数据类型可以用于将多个相同类型的项聚集起来,表示为一个实体。这包括数据(arrary)和对象(object)
// php定义数据的方法
$array = array(
"foo" => "bar",
"bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
"foo" => "bar",
"bar" => "foo",
];
php 特殊类型
NULL: 空值,表示变量没有数值,是一种特殊的值
resource: 资源,也叫作句柄,是一种特殊的变量,能够保存一个到外部资源的引用,通常用专门的函数来定义和使用。
php 数据类型检测
- isset()://变量是否已经声明
- empty()://变量是否为空
- defined()://常量是否已经定义 define()
- array_key_exists(mixed key, array search)://检查给定的键名或索引是否存在于数组中
- is_numeric ( mixed var )://检测变量是 否为数字或数字字符串
- is_bool():// 检测变量是否是布尔型
- is_float():// 检测变量是否是浮点型 和is_double,is_real()都一样的用法
- is_int(): // 检测变量是否是整数is_integer() 一样的 用法
- is_string():// 检测变量是否是字符串
- is_object():// 检测变量是否是一个对象
- is_array():// 检测变量是否是数组
- is_null():// 检测变量是否为 NULL 值是否是NULL大小写敏感
- var_dump()://直接打印数据类型[常用]
函数名 | 作用 | 返回值 |
---|---|---|
is_array(mixed $var) | 判断变量是否为数组 | 如果参数 $var 为数组则返回 TRUE,否则返回 FALSE |
is_bool(mixed $var) | 判断变量是否为布尔类型 | 如果参数 $var 为布尔类型的值则返回 TRUE,否则返回 FALSE |
is_float(mixed $var) | 判断变量是否为浮点数 | 如果参数 $var 为浮点数则返回 TRUE,否则返回 FALSE |
is_int(mixed $var) | 判断变量是否为整数类型 | 如果参数 $var 为整数类型则返回 TRUE,否则返回 FALSE |
is_null(mixed $var) | 判断变量是否为 NULL | 如果参数 $var 未被定义,或者被设置为 NULL 则返回 TRUE,否则返回 FALSE |
is_numeric(mixed $var) | 判断变量是否为数字或者数字字符串 | 如果参数 $var 为数字或者数字字符串则返回 TRUE,否则返回 FALSE |
is_object(mixed $var) | 判断变量是否为一个对象 | 如果参数 $var 为一个对象则返回 TRUE,否则返回 FALSE |
is_scalar(mixed $var) | 判断变量是否为一个标量(标量即最小的变量单位,只包括 integer、float、string 或 bool 类型的变量,而 array、 object 和 resource 则不是标量) | 如果参数 $var 为标量则返回 TRUE,否则返回 FALSE |
is_string(mixed $var) | 判断变量是否为字符串 | 如果参数 $var 为字符串则返回 TRUE,否则返回 FALSE |
isset(mixed $var) | 判断变量是否已经定义 | 如果参数 $var 已经存在则返回 TRUE,否则返回 FALSE。 注意:被设置为 NULL 的变量在使用 isset() 时将返回 FALSE |
PHP 类型转换
第一种方式:允许的强制转换有:
- (int),(integer) – 转换成整型
- (bool),(boolean) – 转换成布尔型
- (float),(double),(real) – 转换成浮点型
- (string) – 转换成字符串
- (array) – 转换成数组
- (object) – 转换成对象
第二种转换方式: intval() floatval() strval()
<?php
$str="123.9abc";
$int=intval($str); //转换后数值:123
$float=floatval($str); //转换后数值:123.9
$str=strval($float); //转换后字符串:"123.9"
?>
第三种方式:还可以用settype ( mixed var, string type )进行强制转换.
<?php
$num4=12.8;
$flg=settype($num4,"int");
var_dump($flg); //输出bool(true)
var_dump($num4); //输出int(12)
?>