自学PHP笔记(二)PHP数据类型

本文转发来自:blog.csdn.net/KH_FC/article/detail...
PHP数据类型可支持以下8种类型:

类型 说明
string 字符串
boolean 布尔值
integer 整型
float 浮点型
array 数组
object 对象
resource 资源
NULL NULL

1. 基本类型

基本类型也就是最基础的数据类型,用来表示比较简单、直接性的数据,基本类型有以下几个数据类型:
|类型|说明|
|-|-|
|boolean(布尔值)|其值只有两个,一个是true,一个是false。多数用来判断事物的真假|
|string(字符串)|其值包含计算机所能够显示的所有字符的集合,多数用来做说明性的字符|
|integer(整型)|只包含整数,包含正整数和负整数|
|float(浮点型)|包含整数和小数|

1.1 boolean(布尔值)

布尔值由truefalse这两个值,所以是PHP种最简单的一种数据类型,也是使用最多的一个数据类型,而且布尔值的两个值可以直接使用,不区分大小写,在设置变量时可以直接将布尔值中的两个值进行赋值就可以,通常是配合流程控制进行使用的。
示例1】常规设置变量为布尔值

<?php
    $a = true;    \\设置变量 a 的值为真
    $b = false;    \\设置变量 b 的值为假
?>

示例2】与流程控制语句配合使用,判断事物真假

<?php 
    $a = true;
    $b = false;
    if ($a == $b) {
        echo "值相等";    #结果为真输出
    }else{
        echo "值不相等";    #结果为假输出
    }
?>

输出结果为:值不相等
示例3】使用运算符返回布尔值

<?php
    $name = "张三";
    if ($name == "张三"){
        echo "他的名字是$name";    #如果判断运算结果为真则输出
    }
?>

输出结果为:他的名字是张三
示例4】常用语句

<?php
    if ($a = true ){
        var_dump($a);
    }
?>

输出结果为:bool(true),上面出现的 var_dump()是用来打印输出结果并带上数据类型
上面那种判断变量真假的方式可直接写成下面简单的方法:

<?php
    if ($a) {
        var_dump($a);
    }
?>

注意】上面$a变量我的赋值没有写,不给变量复制,变量默认为NULL

1.2 整型

整型数值只包含整数,其中整型也可以使用八进制、十六进制、二进制表上,负数时前面可加可选符号-+
示例1】八进制的整数,在表示数字前需要在数字前面加0

<?php
    $a = 0456;
    var_dump($a);
?>

输出结果为:int(302),八进制456转化为十进制是302
示例2】十六进制的整数,在表示数字前需要在数字前面加0x

<?php
    $a = 0x456;
    var_dump($a);
?>

输出结果为:int(1110),十六进制456转化为十进制是1110
示例3】二进制的整数,在表示数字前需要在数字前加0b

<?php
    $a = 0b1101;
    var_dump($a);
?>

输出结果为:int(13),二进制数1101转换为十进制是13
示例4】打印负数,只需正数前面加-即可

<?php
    $a = -100;
    var_dump($a);
?>

输出结果不变,显示int(-100)

番外】整数一般最大值是二十亿,也就是32位字符,64位平台最大值是9E18,查看支持的最大值和最小值可以采用PHP_INT_MAXPHP_INT_MIN进行查看
示例1】查看支持最大的整数

<?php
    var_dump(PHP_INT_MAX);
?>

我这输出结果是int(9223372036854775807),你们自己算算吧是多少
示例2】查看支持最小的整数,这个只有PHP7.0版本之后支持哟

<?php
    var_dump(PHP_INT_MIN);
?>

这个最小整数的输出值就不用我说了吧,算了给你们看看结果吧int(-9223372036854775808)
注意】在输出八进制时,如果出现超过8的数值,PHP7.0版本之前会自动忽略,但是7.0之后会直接报错哦
示例

<?php
    $a = 01239;
    var_dump($a);
?>

报错信息如下:
在这里插入图片描述
注意】如果给出的整数值超出了整数范围,会被解释为浮点数,同样如果运算结果超出了整数范围,也会解释为浮点数哟!
示例】运算结果超出整数范围

<?PHP
    $num1 = 45678901111;
    $num2 = 89099899111;
    var_dump($num1 * $num2);
?>

输出结果为:float(4.0699854804914E+21)

1.3 浮点型

浮点型整数也叫实数,表示方式可以采用正常格式和科学技术法格式进行
示例1】正常格式

<?php
    $a = 1.234;
    var_dump($a);
?>

输出结果为:float(1.234)
示例2】科学技术格式

<?php
    $a = 1.2e3;
    $b = 8E - 10;
    var_dump($a);
    var_dump($b);
?>

输出结果为:float(1200) float(8.0E-10)

1.4 字符串

字符串就是由一系列的字符组成,一个字符就是一个字节,通过单引号、双引号、Heredoc语法结构和Nowdoc语法结构定义字符串。

  1. 单引号
    采用单引号定义字符串就是使用单引号把字符包围起来,如果想要输出单引号需要在单引号添加转义符\,如果是在结尾想输出反斜杠就需要在字符前添加转义符\\,如果在其他字符前面添加转义符\或者\\会直接输出转义符。
    示例1】正常输出单行字符串
    <?php
    $a = '我是一个字符串';
    var_dump($a);
    ?>
    输出结果为:string(21) "我是一个字符串"
    示例2】正常输出多行字符串
    <?php
    $a = '我是多行
    字符串';
    var_dump($a);
    ?>
    输出结果为:tring(23) "我是多行 字符串"
    示例3】在字符串中显示单引号
    <?php
    $a = 'I like \'PHP\'';
    var_dump($a);
    ?>
    输出结果为:string(12) "I like 'PHP'"
    示例4】在字符串中输出反斜杠,多用于文件路径
    <?php
    $a = 'D:\\php\index.php';
    var_dump($a);
    ?>
    输出结果为:string(16) "D:\php\index.php"
    注意】在使用单引号进行定义字符时,如果字符中含有变量,变量将不会被解释,但是双引号定义字符串时变量可以被解释的
    示例】在字符串中引用变量
    <?php
    $a = '张三';
    $b = '我叫$a';
    $c = "我叫$a";
    var_dump($b);
    var_dump($c);
    ?>
    输出结果为:$b的返回结果为string(8) "我叫$a"$c的返回结果为string(12) "我叫张三"
  2. 双引号
    采用双引号定义字符串,将要定义的字符型采用"", 使用双引号定义字符串时,如果字符串中存在变量则变量将会被解释,不会显示变量名,PHP将对这些特殊字符串进行解析,这些字符串都要通过转义符来显示。
    转义符列表:
    转义字符 意义 ASCLL码值(十进制)
    \a 响铃(BEL) 007
    \b 退格(BS),将当前位置移到前一列 008
    \f 换页(FF),将当前位置移到下页开头 012
    \n 换行(LF),将当前位置移到下一行开头 010
    \r 回车(CR),将当前位置移动到本行开头 013
    \t 水平制表(HT)(跳到下一个TAB位置) 009
    \v 垂直制表(TV) 011
    \\ 代表一个反斜杠字符”\“ 092
    \‘ 代表一个单引号(撇号)字符 039
    \“ 代表一个双引号字符 034
    \? 代表一个问好 063
    \0 空字符(NULL:) 000
    \ddd 1到3位八进制数所代表的任意字符 三位八进制
    \xhh 1到2位十六进制所代表的任意字符 二位十六进制

注意】要注意\/,此处时不可替换的
示例1】双引号定义字符串时输出$符号

<?php
    echo "\$";
?>

示例2】双引号定义字符串时输出双引号

<?php
    echo " My Name is \"李明\"";
?>

输出结果为:My Name is "李明"

  1. Heredoc语法结构
    采用Heredoc结构<<<定义字符串,在使用提示符定义字符串时,要在提示符后面定义一个标识符,然后定义新的一行,新行中为你要显示的字符串,最后要以标识符进行结尾,标识符定义必须遵循PHP规则,只能包含大小写、数字和下划线,但是不能将下划线作为开头使用
    示例
    <?php
    $str = <<<test
    My name is "zhangsan"
    加入CSDN已经一周年了
    test;
    ?>
    输出结果为:My name is "zhangsan" 加入CSDN已经一周年了
    注意】在使用Heredoc语法结构定义字符串时,字符串中如果存在变量,那变量将会被解释
  2. Nowdoc语法结构
    采用Nowdoc语法结构定义字符串类似于采用Heredoc定义字符串的方式,只不过时在定义标识符时需要使用单引号将标识符进行包围,这种方法无法解释变量,在字符串中变量相当于字符
    示例
    <?php
    $name = "张三";
    $str = <<<'test'
    My name is $name
    My name is 张三
    test;
    echo $str;
    ?>
    输出结果为:My name is $name My name is 张三

    2. 复合类型

    复合类型包括数组和对象两种数据类型
    类型 说明
    array(数组) 一组有序数据组合
    object(对象) 对象是类的实例,使用new进行创建

2.1 数组

数组也就是我们常说的键值对的,每个数组都是由索引(键名)和值两部分组成,数组的索引部分可以使用字符串或者是数字表示,值可以是任意数据类型
实例1】采用函数创建数组

<?php
$array = array(
    "name" => "张三",
    "age"  => "11",
);
var_dump($array);
?>

输出结果为:array(2) { ["name"]=> string(6) "张三" ["age"]=> string(3) "11" }
实例2】直接赋值的方式创建数组

<?php
$array = [
    "name" => "张三",
    "age"  => "11",
];
var_dump($array);
?>

输出结果为:array(2) { ["name"]=> string(6) "张三" ["age"]=> string(3) "11" }
实例3】创建只有值得数组

<?php
$array = array("张三","李四","王五");
var_dump($array);
?>

输出结果为:array(3) { [0]=> string(6) "张三" [1]=> string(6) "李四" [2]=> string(6) "王五" }
提示】不设置索引得话,数组会自动添加一个索引,这个索引是由数字组成得,第一个从零开始
实例4】读取数组时,可以使用索引名用方括号包围得方式进行读取

<?php
$array = array(
    "name" => "张三",
    "age"  => "11",
);
var_dump($array['name']);
?>

输出结果为:string(6) "张三"
当然也可以用数组得索引进行赋值得例如:

<?php
$array = array(
    "name" => "张三",
    "age"  => "11",
);
$array['name'] = "李四";
var_dump($array);
?>

输出结果为:array(2) { ["name"]=> string(6) "李四" ["age"]=> string(2) "11" }

2.2 对象

对象是面向对象编程得基础,在PHP中使用new进行实例化,也就是创建对象
实例】创建对象

<?php
class test{
    function fu(){
        echo "test";
    }
}
$test = new test;
$test->fu();
?>

输出结果为:test

3. 特殊类型

特殊得数据类型包含资源和空值两种
|类型|说明|
|-|-|
|resource(资源)|这个也是就指的外部资源,如上传的文件等|
|NULL(空值)|指的是当没有赋值变量时则为空|

3.1 资源

资源数据类型变量保存有打开文件、数据库连接、图形画布区域等的特殊句柄,不建议将其他数据类型转换为资源类型,多数使用在文件上传,下载,数据库等场景
资源数据类型自动开启资源回收机制,随时释放不再使用的资源,以免程序占用服务器的大量资源,无需手动释放
后续为大家记录资源的使用方法吧。

3.2 NULL

NULL即空值,也是就是说变量并没有进行赋值,其值时一个比较特殊的值为null,该值不区分大小写,变量为空值时会存在设置为空、变量没有被赋值和使用unset()函数处理过的变量
示例1】设置变量值为空

<?php
$test = null;
var_dump($test);
?>

输出结果为:NULL
示例2】在不设置变量时输出变量值

<?php
var_dump($a);
?>

输出结果为:NULL
提示】使用unset()函数将会摧毁变量,使用is_null()函数可以判断变量是否为空
实例3】判断变量是否为空

<?php
$a = "张三";
if (is_null($a)){
    echo "变量为空";
}else{
    echo "变量不为空";
}
?>

输出结果为:变量不为空

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!