php学习04-PHP的数据类型

发布时间:2023年12月28日

PHP支持8种原始类型,包括4种标量类型,即boolean(布尔型)、integer(整型)、float/double(浮点型)和string(字符串型):2种复合类型,即array(数组)和object(对象);2种特殊类型,即resource(资源)与null。

PHP中变量的类型通常不是由程序员设定的,确切地说,是PHP根据该变量使用的上下文在运行时决定的。

标量数据类型

布尔型

只有两个值 true和false

$boo = true;
if ($boo == true) {
    echo "true";
} else {
    echo "false";
}

在PHP中不是只有false值才为假的,在一些特殊情况下boolean值也被认为是false。这些特殊情况为0、0.0、“0”,空白字符串(”)、只声明没有赋值的数组等。

字符串

字符串是连续的字符序列,由数字、字母和符号组成。字符串中的每个字符只占用一个字节。在PHP中,有3种定义字符串的方式,分别是单引号(')、双引号(")和定界符(<<)。
单引号和双引号是经常被使用的定义方式,定义格式如下:

<?php
$a = '这是字符串\'';
echo $a;
$a = "这是字符串'";

定界符(<<<)是从PHP4开始支持的。在使用时后接一个标识符,然后是字符串,最后是同样的标识符结束字符串。

<?php
$a = '这是字符串"';
echo $a;
$string=<<< str
要输出的字符串
str;
echo $string;

str就是指定的标识符

<?php
$i="你好";
echo <<<std
这和双引号没什么区别,\$i可以输出出来
\$i内容为:$i
std;

在这里插入图片描述

整型

整型数据类型只能包含整数。在32位的操作系统中,有效的范围是-2147483648~+2147483647。整型数可以用十进制、八进制和十六进制来表示。如果用八进制,数字前面必须加0:如果用十六进制,则需要加0x。

如果在八进制中出现了非法数字(8和9),则后面的数字会被忽略掉。目前php7.4会报错

<?php
$str1 = 1234567890; //十进制
$str2 = 0x1234567890; //十六进制
$str3 = 01234567890; //八进制
$str4 = 01234567; //八进制
if ($str3 == $str4) {
    echo "相等";
} else {
    echo "不相等";
}

执行上面代码会报错,修改为如下代码

<?php
$str1 = 1234567890; //十进制
$str2 = 0x1234567890; //十六进制
$str3 = 342391;//十进制
$str4 = 01234567; //八进制
echo $str2;
echo "<br>";
echo $str4;
echo "<br>";
if ($str3 == $str4) {
    echo "相等";
} else {
    echo "不相等";
}

在这里插入图片描述

浮点数

浮点数据类型可以用来存储数字,也可以保存小数。它提供的精度比整数大得多。在32位的操作系统中,有效的范围是1.7E-3081.7E+308。在PHP4.0以前的版本中,浮点型的标识为double,也叫作双精度浮点数,两者没有区别。
浮点型数据默认有两种书写格式,一种是标准格式:

$a = 3.1415926;
$b = -35;

还有一种是科学记数法格式:

<?php
$a = 3.58E1;
$b = 842.78E-3;

echo $a."<br>".$b;

在这里插入图片描述

复合数据类型

数组

数组是一组数据的集合,它把一系列数据组织起来,形成一个可操作的整体。数组中可以包括很多数据,如标量数据、数组、对象、资源以及PHP中支持的其他语法结构等。

<?php
$array = array('1', '2', '3');
echo print_r($array, true) . "<br>";
$array['4'] = 5;
echo print_r($array, true) . "<br>";
$array = ['1', '2', '3'];
echo print_r($array, true) . "<br>";
$array = array('name'=>'1','age' =>'2', '3');
echo print_r($array, true) . "<br>";

<?php
$array = array('1', '2', '3');
printf("<pre>%s</pre><br>",print_r($array, true));
$array['4'] = 5;
printf("<pre>%s</pre><br>",print_r($array, true));
$array = ['1', '2', '3'];
printf("<pre>%s</pre><br>",print_r($array, true));
$array = array('name'=>'1','age' =>'2', '3');
printf("<pre>%s</pre><br>",print_r($array, true));

在这里插入图片描述
在这里插入图片描述

对象

编程语言所应用到的方法有两种:面向过程和面向对象。在PHP中,用户可以自由使用这两种方法。后面会有详细讲解

特殊数据类型

resource

资源类型是PHP4引进的。关于资源的类型,可以参考PHP手册后面的附录,里面有详细的介绍和说明。在使用资源时,系统会自动启用垃圾回收机制,释放不再使用的资源,避免内存消耗殆尽。因此,资源很少需要手工释放。

null

空值,顾名思义,表示没有为该变量设置任何值。另外,空值(null)不区分大小写,null和NULL效果是一样的。被赋予空值的情况有以下3种:还没有赋任何值、被赋值null、被unset()函数处理过的变量。

<?php
echo "变量\$string1直接赋值为NULL<br>";
$string1 =null;
$string3="str";

if(!isset($string1)){
    echo "\$string1=null<br>";
}
if(!isset($string2)){
    echo "\$string1=null<br>";
}
echo "变量\$string3 unset<br>";
unset($string3);
if(!isset($string3)){
    echo "\$string3=null<br>";
}

在这里插入图片描述

is_null()函数用于判断变量是否为null,该函数返回一个boolean型,如果变量为null,则返回true,否则返回false。unset()函数用来销毁指定的变量。

数据类型转换

PHP内置了检测数据类型的系列函数,可以对不同类型的数据进行检测,判断其是否属于某个类型,如果符合则返回true,否则返回false。检测数据类型的函数如下表所示。

转化操作符转化类型
(boolean)转化为布尔型
(string)转化为字符型
(integer)转化为整形
(float)转化为浮点数
(array)转化为数组
(object)转化为对象

在进行类型转换的过程中应该注意以下内容:转换成boolean型时,null、0和未赋值的变量或数组会被转换为false,其他的为true;转换成整型时,布尔型的false转换为0,true转换为1,浮点型的小数部分被舍去,字符型如果以数字开头就截取到非数字位,否则输出0。

类型转换还可以通过settype()函数来完成,该函数可以将指定的变量转换成指定的数据类型。

bool settype(mixed var,string type)

其中,var为指定的变量;type为指定的类型,它有7个可选值,即boolean、float、.integer、aray、null、object和string。如果转换成功,则返回tnue,否则返回false.
当字符串转换为整型或浮点型时,如果字符串是以数字开头的,就会先把数字部分转换为整型,再舍去后面的字符串:如果数字中含有小数点,则会取到小数点前一位。

检测数据类型

函数检测类型
is_bool是否是布尔类型
is_string是否是字符串类型
is_float/is_double检测是否是浮点类型
is_interger/is_int是否是整数
is_null是否是null
is_array是否是数组类型
is_object检测变量是否是一个对象类型
is_numeric检测变量是否为数字或者数字组成的字符串
文章来源:https://blog.csdn.net/qq_36437991/article/details/135167256
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。