天天看点

自学PHP笔记(二) PHP数据类型1. 基本类型2. 复合类型3. 特殊类型

本文转载来自:https://blog.csdn.net/KH_FC/article/details/115415323

PHP数据类型可支持以下8种类型:

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

1. 基本类型

基本类型也就是最基础的数据类型,用来表示比较简单、直接性的数据,基本类型有以下几个数据类型:
boolean(布尔值) 其值只有两个,一个是

true

,一个是

false

。多数用来判断事物的真假
string(字符串) 其值包含计算机所能够显示的所有字符的集合,多数用来做说明性的字符
integer(整型) 只包含整数,包含正整数和负整数
float(浮点型) 包含整数和小数

1.1 boolean(布尔值)

布尔值由

true

false

这两个值,所以是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】八进制的整数,在表示数字前需要在数字前面加

<?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_MAX

PHP_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笔记(二) PHP数据类型1. 基本类型2. 复合类型3. 特殊类型

【注意】如果给出的整数值超出了整数范围,会被解释为浮点数,同样如果运算结果超出了整数范围,也会解释为浮点数哟!

【示例】运算结果超出整数范围

<?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 "李明"

  3. Heredoc语法结构

    采用Heredoc结构

    &lt;&lt;&lt;

    定义字符串,在使用提示符定义字符串时,要在提示符后面定义一个标识符,然后定义新的一行,新行中为你要显示的字符串,最后要以标识符进行结尾,标识符定义必须遵循PHP规则,只能包含大小写、数字和下划线,但是不能将下划线作为开头使用
    <?php
    $str = <<<test
    My name is "zhangsan"
    加入CSDN已经一周年了
    test;
    ?>           

    My name is "zhangsan" 加入CSDN已经一周年了

    【注意】在使用Heredoc语法结构定义字符串时,字符串中如果存在变量,那变量将会被解释
  4. 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"]=&gt; string(6) "张三" ["age"]=&gt; string(3) "11" }

    【实例2】直接赋值的方式创建数组
    <?php
    $array = [
    "name" => "张三",
    "age"  => "11",
    ];
    var_dump($array);
    ?>           

    array(2) { ["name"]=&gt; string(6) "张三" ["age"]=&gt; string(3) "11" }

    【实例3】创建只有值得数组
    <?php
    $array = array("张三","李四","王五");
    var_dump($array);
    ?>           

    array(3) { [0]=&gt; string(6) "张三" [1]=&gt; string(6) "李四" [2]=&gt; 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"]=&gt; string(6) "李四" ["age"]=&gt; 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);
    ?>           
    <?php
    var_dump($a);
    ?>           
    <?php
    $a = "张三";
    if (is_null($a)){
    echo "变量为空";
    }else{
    echo "变量不为空";
    }
    ?>