PHP 零基础入门笔记(4):PHP数据类型

简介: PHP 零基础入门笔记(4):PHP数据类型

PHP 数据类型

数据类型 data type

在 PHP 中指的是存储的数据本身的类型,而不是变量的类型

PHP 是一种弱类型语言,变量本身没有数据类型

3 大类 8 小类数据类型


简单(基本)数据类型:4 个小类

整型 int/integer

浮点型 float/double

字符串型 string

布尔类型 bool/boolean 只有两个值 true/false

复合数据类型:2 个小类

对象类型 object

数组类型 array

特殊数据类型:2 个小类

资源类型 resource

空类型 null

类型转换

自动转换:系统根据需求自己判断

强制转换:人为根据需要手动转换

<?php
$a = 1; $b = '2';
// 自动转换
echo $a + $b;
// 3
// 强制转换
echo $a + (int)$b;
// 3

类型判断

// 返回变量所保存数据的类型
bool is_xxx(变量名);
<?php
$a = 1;
var_dump(is_int($a));
// bool(true)
var_dump(is_string($a));
// bool(false)

获取/设置数据类型


// 获取数据类型
string gettype(变量名)
// 设置数据类型
bool settype(变量名, 类型)
<?php
$a = 1;
echo gettype($a);
// integer
// 设置数据类型
settype($a, 'string');
echo gettype($a);
// string

区别强制转换


强制转换:返回新值

settype:改变数据本身

整数类型

1、定义整数类型的方式


<?php
// 十进制 120 = 1 x 100 + 2 x 10 + 0 x 1
$a = 120;
echo $a . PHP_EOL;
// 二进制 6 = 1 x 4 + 1 x 2 + 0 x 1
$b = 0b110;
echo $b . PHP_EOL;
// 八进制 80 = 1 x 64 + 2 x 8 + 0 x 1
$c = 0120;
echo $c . PHP_EOL;
// 十六进制 288 = 1 x 16 x 16 + 2 x 16 + 0 x 1
$d = 0x120;
echo $d . PHP_EOL;

PHP 输出默认都是十进制


2、进制


十进制:逢 10 进 1,[0-9]

二进制:逢 2 进 1,[0-1]

八进制:逢 8 进 1,[0-7]

十六进制:逢 16 进 1,[0-9, A-F]

3、进制转换


十进制 转 二进制


方式一:除 2 取余


10 -> 1010
10 / 2 = 5 ... 0
5 / 2 = 2 ... 1
2 / 2 = 1 ... 0
1 / 2 = 0...1

方式二:取出最大的 2 的 N 次方,直到结果为 0


10
= 8 + 2
= 2^3 + 2^1
= 1 x 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0
=> 1010

二进制转十进制


方式:右侧开始,对应位数乘以 2 的 N 次幂,相加求和


110
=> 1 x 2^2  + 1 x 2^1 + 0 x 2^0
= 4 + 2 + 0
= 6

4、PHP 提供的进制转换方法

// 十进制 转 二进制
echo decbin(12); // 1100
// 十进制 转 八进制
echo decoct(12); // 14
// 十进制 转 十六进制
echo dechex(12); // c

浮点类型

浮点类型的定义方式


<?php
$f1 = 1.23;
var_dump($f1);
// float(1.23)
// 科学计数法 e表示10为底
$f2 = 1.23e10;
var_dump($f2);
// float(12300000000)
// 整型超过自身存储的大小后会用浮点型存储
$f3 = PHP_INT_MAX + 1;
var_dump($f3);
// float(9.2233720368548E+18)

计算机中浮点数都不准确


var_dump(2.1 / 3);
// float(0.7)
var_dump(2.1 / 3 == 0.7);
// bool(false)

布尔类型

只有两个值:true/false


通常用于判断比较


var_dump(true);
// bool(true)
var_dump(FALSE);
// bool(false)

类型比较需要注意:


empty() 判断数据的值是否为空,不是 null, 如果为空返回 true,不为空返回 false

isset() 判断数据存储的变量本身是否存在,存在返回 true,不存在返回 false

PHP 类型比较表:

https://www.php.net/manual/zh/types.comparisons.php


使用 PHP 函数对变量 $x 进行比较

image.png


image.png

相关文章
|
6月前
|
自然语言处理 安全 PHP
PHP 之道笔记整理:最佳实践与安全指南
这篇文章讨论了PHP开发中的最佳实践,包括使用最新稳定版(PHP 8.3)以提升性能和安全,利用`DateTime`类及Carbon库处理日期时间,确保使用UTF-8编码并用`mb_*`函数处理字符串,以及通过密码哈希和数据过滤来加强Web应用安全。文章提醒开发者始终保持对新技术和安全实践的关注。
101 2
|
7月前
|
JSON JavaScript Java
【PHP】英文博客专栏PHP快速入门个人笔记
【PHP】英文博客专栏PHP快速入门个人笔记
143 1
|
JavaScript PHP
php正则表达式获取(捕获)组的笔记
@(汗)的确,网络上存在很多这样的内容了,但今天我是来补充内容的,滑稽@(你懂的) 众所周知 ,js中正则表达式()可以来获取匹配到内容,然后用$0 ...来显示
80 0
|
JSON PHP 数据格式
php笔记
php笔记
166 0
php笔记
|
存储 监控 前端开发
【php详细笔记】上传文件到服务器(下)
【php详细笔记】上传文件到服务器
124 0
【php详细笔记】上传文件到服务器(下)
|
存储 缓存 安全
【php详细笔记】上传文件到服务器(上)
【php详细笔记】上传文件到服务器
366 0
【php详细笔记】上传文件到服务器(上)
|
Web App开发 安全 Shell
【PHP快速入门】详细笔记---精简版(下)
【PHP快速入门】详细笔记---精简版
128 0
【PHP快速入门】详细笔记---精简版(下)
|
安全 Java Linux
【PHP快速入门】详细笔记---精简版(上)
【PHP快速入门】详细笔记---精简版
118 0
【PHP快速入门】详细笔记---精简版(上)
|
安全 PHP
PHP基础笔记-NO.4
PHP基础笔记
99 0
PHP基础笔记-NO.4
|
开发框架 前端开发 JavaScript
PHP基础笔记-NO.1
PHP基础笔记
124 0
PHP基础笔记-NO.1