当前位置:首页 > CN2资讯 > 正文内容

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

17小时前CN2资讯

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

类型

说明

string

字符串

boolean

布尔值

integer

整型

float

浮点型

array

数组

object

对象

resource

资源

NULL

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】八进制的整数,在表示数字前需要在数字前面加​​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_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
$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】正常输出单行字符串
  • <?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结构​​<<<​​定义字符串,在使用提示符定义字符串时,要在提示符后面定义一个标识符,然后定义新的一行,新行中为你要显示的字符串,最后要以标识符进行结尾,标识符定义必须遵循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"]=> 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 "变量不为空";
    }
    ?>

    输出结果为:​​变量不为空​​

      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/26539.html

      分享给朋友:

      “自学PHP笔记(二)PHP数据类型php数据类型” 的相关文章

      Discover What is vip.qq.com: Unlock Exclusive QQ Member Benefits

      vip.qq.com简介 vip.qq.com是腾讯公司专门为QQ会员用户打造的官方网站。这个平台为会员提供了一系列专属的特权和服务,涵盖了社交、游戏、生活等多个方面。作为QQ会员的官方入口,vip.qq.com不仅是会员管理账户的中心,也是了解和使用各种会员功能的主要渠道。无论是等级加速、身份铭牌...

      Digital-VM优惠码:解锁超值VPS主机服务的最佳选择

      Digital-VM成立于2019年初,专注于为用户提供基于KVM架构的VPS主机服务。在这短短的几年中,它已经迅速崛起,成为业界的一颗新星。作为一个技术驱动的品牌,Digital-VM不断创新,以满足各种客户需求,提供高性能、灵活性和可靠性的VPS解决方案。 我觉得Digital-VM的成长路程相...

      如何解决甲骨文IP被墙的问题及有效方法

      谈到甲骨文,大家可能会联想到古老的文字和悠久的历史,然而随着信息技术的飞速发展,甲骨文的应用已经不仅仅局限于文化研究。在数据存储、信息管理等领域,甲骨文的IP(互联网协议)在全球范围内发挥着重要的作用。不幸的是,现如今许多用户却发现自己无法正常访问这些IP。这就是我们所说的“甲骨文IP被墙”的现象。...

      Ubuntu 多人远程办公的安装与配置指南

      安装和配置远程桌面软件 在远程办公和团队协作日益成为常态的今天,合理配置远程桌面软件显得尤为重要。在Ubuntu的环境下,安装和配置xrdp和vncviewer等工具,可以让多个用户方便地进行远程访问,提高工作效率。下面,我将一步步带你进行相关的软件安装和配置。 1. 安装xrdp 首先,我们要安装...

      zgocloud:提升数据管理效率的创新云计算解决方案

      zgocloud的定义与背景 在当今数字化快速发展的时代,zgocloud作为一种创新的云计算解决方案逐渐崭露头角。简单来说,zgocloud是一种基于云技术的平台,可以提供灵活的存储和计算能力。它的设计旨在更好地满足不同企业和个人用户在数据处理和管理方面的需求。成立之初,zgocloud就定位于提...

      Fiberstate: 让你的健康饮食更简单轻松

      每当提起“Fiberstate”这个词,我的脑海中便浮现出一个全新的健康理念。Fiberstate并不仅仅是一个产品,它代表着对身体健康全面理解的汇聚,是我提升生活质量的伴侣。从简单的定义开始探讨,这个概念到底蕴含着什么深意。 Fiberstate的定义实际上很贴近我们的日常生活。简单来说,它是指通...