我的php学习第二十五天——PHP的数据类型

PHP有8大数据类型,分为三个大类

标量数据类型(简单数据类型)

整型:int或者integer

浮点型:float或者double

布尔型:bool或者Boolean

字符型:string

复合数据类型

数组:array

对象:object

特殊数据类型

资源:resource

空:NULL

为什么会有数据类型?

对于电脑来说,根本没有数据类型,只有二进制

是因为人有需求,需要对数据进行分门别类,所以才定义了这么些数据类型。

 

PHP是一门弱类型的语言。

强类型:在给变量赋值之前,需要对变量的类型进行声明,而且给变量的值必须是指定类型的数据

Int num;

Num = 10;

//num = ‘abcd’;//系统会报错,提示数据类型不符合

弱类型:变量分为两个部分,一部分是变量名,变量值,变量名是不区分数据类型的,值是有类型

$a = 10; //10是整型,但是a变量本身没有数据类型。

 

整型:int,指的是在一定范围内的整数。

PHP_INT_MAX 代表整型的最大值。

image086

如何判断一个变量到底是什么类型?var_dump(变量)

image088

PHP还支持其他进入:八进制和十六进制

八进制:逢十进一,假设一个十进制的数值为17,21

PHP默认都是认为是十进制,除非碰到以0开始,而且在输出的时候会将其他类型进制转化成十进制输出。

$oct = 021;

image090

如何让系统在输出的时候保留原来的进制输出?printf(‘%o’,$a);

image092

十六进制:逢16进1

1,2,3,4,5,6,7,8,9,a,b,c,d,e,f---------10,11…1f--------20,21….

$hex = 0x15; //21

image094

进制转换

十进制转八进制

image096

十进制转十六进制

image098

十六进制转十进制(其他进制转十进制都可以采用同样的方式)

image100

PHP为用户提供了进制转换的函数

Hexdec():十六进制转十进制

Dechex():十进制转十六进制

Bindec():二进制转十进制

Decbin():十进制转二进制

Octdec():八进制转十进制

Decoct():十进制转八进制

 

 

浮点型:float

强类型语言里

Float:4个字节,单精度

Double:8个字节,双精度

单精度和双精度表示能够精确的位数不一样,单精度的精确长度7位,双精度大概是16位左右

单精度值:1234567890 ----------》1234570000

在PHP中

Float=double=8个字节

PHP中浮点数能够保存的最大值:1.8 * 10^302

image102

image104

因为浮点数会丢失精度,所以有可能导致看到的浮点数跟实际存储的浮点数一样,因此不采用浮点数进行比较

image106

时间戳是一类整型

image108

布尔类型

正常的,布尔类型有两个值:TRUE和FALSE

在PHP中,只要非0,都为TRUE

image110

在PHP中,有哪些会被认为是FALSE呢?

以下部分都是FALSE,这部分FALSE不能用来输出或者var_dump判断,属于不同的数据类型,需要通过if进行判断,从而得出其正确的布尔结果

FALSE

0

0.0

’’

’0’

空数组

null值

字符类型

由字符组成的数据类型就是字符类型。

定义方式有多种

$str1 = ‘abcd’;

image112

$str2 = “abcd”;

image114

单引号和双引号有什么区别?

  1. 双引号号中会对符合条件的变量进行解析,得到其结果;单引号会直接原样输出所有字符。image116
  2. 在双引号中,能够解析更多的转义字符image118

单引号里只能识别\’对于单引号的转义

双引号里不能识别\’对单引号的转义,双引号\”,\r\n\t都可以识别

注意:转义字符\不能放倒字符串的最后,因为放到最后会对最后的引号(不论单双)都会进行转义。

 

字符串定义方式:定界符

语法:$string = <<<STR

字符串内容

STR;

image120

使用双引号也可以实现js的输出

image122

说明双引号跟定界符方式没有什么明显的区别

定界符也可以输出变量

image124

注意:使用定界符输出字符串能够保留其原有的格式。

什么时候使用定界符,什么时候使用双引号?

他们之间没有什么区别。通常,当字符串非常长而且复杂的时候,尽可能的使用定界符,因为其格式非常明确,便于识别。如果字符串很短的话,那么就建议使用双引号。

什么时候使用双引号,什么时候使用单引号?

有这么一种认为:单引号的效率比双引号效率高。如果输出的字符串不需要解析变量和一些转义字符,那么尽量使用单引号,其他情况下使用双引号或者定界符。

定界符需要注意以下几点

  1. 定界符的第一行 <<< STR之后不能有任何内容,连空格都不行
  2. 使用定界符,注释不能卸载定界符内容里面
  3. 最后部分STR要独占一行
  4. 最后部分STR必须要顶格,如果出现了这种错误,很难找出来

在双引号或者定界符中解析变量注意事项

  1. 保证变量名与后面的其他字符串之间没有联系(可以通过空格来进行区分)
  2. 使用{}对变量进行包含,显示的告诉编译器大括号里面的是一个变量

image126

提示浏览器使用指定编码解析html文件

image128

 

PHP代码执行过程

PHP是以中脚本语言, 也是一种解释型语言

Index.c

Index.java ====》 index.class ==è执行index.class文件

前面两种都需要先进行编译,产生一个执行文件

Index.php ======》解释

image130

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/2081.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚重蔚管理团队
上一篇 2017年5月2日 19:47
下一篇 2017年5月3日 00:40

相关推荐

  • 附件三:DedeCMS二次开发——代码篇

    二、代码篇 2.1、common.func.php 公用函数 获得当前的脚本网址 function GetCurUrl() 返回格林威治标准时间 function MyDate($format='Y-m-d H:i:s',$timest=0) 把全角数字转为半角 function GetAlabNum($fnum) 把…

    2017年5月5日
    0281
  • 详解php如何实现一个简单的图片边缘检测

    本篇文章给大家介绍一下php 实现一个简单的图片边缘检测。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 php 实现一个简单的图片边缘检测 一个简单的图片边缘检测方法 大致步骤: 1、缩放图片…

    2023年3月29日 PHP自学教程
    01
  • PHP入门指南:自动加载。

    PHP是一种流行的开源脚本语言,广泛应用于Web开发中。在使用PHP编写Web应用程序时,程序员必须处理许多文件之间的依赖关系,这可能导致代码难以维护和复杂。为解决这个问题,PHP提供了自动加载机制。在这篇文章中,…

    2023年5月30日
    00
  • PHP入门指南:SQL注入。

    PHP入门指南:SQL注入随着互联网的快速发展,Web应用程序越来越普及,其安全性也成为了人们极为关注的问题。SQL注入是 Web应用程序中的一种常见攻击方式,它可以导致严重的安全问题,从而对 Web应用程序的正常运行…

    2023年5月22日
    01
  • php的成员方法(函数)

    一个需求 当我们需要让对象完成某个任务(比如计算,比如上传下载文件,分页等等), 就需要在类中定义函数, 这时我们就将这样的函数称为 成员方法. 举例说明: 代码:

    2018年4月9日
    0212
  • 说说php拆分字符串。

    在PHP中,我们可以使用内置的字符串函数来拆分字符串,这些函数包括`str_split()`、`explode()`和`split()`,每种函数都有其特定的用途和优点,选择哪种函数取决于你的具体需求。 1. `str_split()`:这个函数将字符…

    2024年6月20日
    00
  • 关于PHP CURL上传二进制流图片

    前言项目中模块数据由PHP爬虫进行更新,当检测到有新图片时需要上传到跨地区的CDN回源服务器(静态资源服务器),服务器负责人只提供一个上传API解决方法1.将图片保存到本地再使用PHP CURL + new \\CURLFile($path)上…

    2022年6月27日
    0348
  • PHP函数的说明

    函数的调用者把实际的数据传递给函数的形参,这个时候的形参只能在函数内使用。 函数在运行代码时会新建一个新空间来运行函数内的代码 运行代码后,如果有返回值,把结果返回给函数的调用者,这个时候运行函数的这…

    2018年4月4日
    0231

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息