我的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

相关推荐

  • 浅谈PHP中断言函数的用法

    本篇文章带大家了解PHP中断言函数的使用方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。原来一直以为断言相关的函数是 PHPUnit 这些单元测试组件提供的,在阅读手册后才发现,这个 assert…

    2023年3月29日
    00
  • PHP入门指南:命名管道。

    PHP是目前应用最为广泛的Web开发语言之一,在PHP开发过程中,常见的问题就是如何在不同文件之间传递数据,命名管道便是一种解决方案。本文将介绍PHP中的命名管道以及如何使用它们来实现进程间通信。一、什么是命名…

    2023年5月23日
    02
  • 详解PHP面向对象之后期静态绑定

    介绍自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。准确说,后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwarding call)的类名。当进行静态方法调用…

    2022年6月27日
    0127
  • PHP中的响应式图片加载技巧。

    随着移动设备的普及和网络速度的提升,现在网页中使用图片已经成为了一种必不可少的元素之一。然而,随着图片数量的增加和尺寸的变化,图片的加载速度也成为了一个重要的问题。在这种情况下,我们需要使用响应式图…

    2023年5月28日
    03
  • PHP中的容器编排。

    随着云计算的普及,容器技术也得到广泛的应用,容器编排成为了越来越多企业的必备技术。PHP作为世界流行的服务器端脚本语言,也积极适应这一技术趋势,不断推出新的容器编排工具。一、什么是容器编排容器编排(Cont…

    2023年5月28日
    00
  • PHP基础案例三:判断学生星座

    一、需求分析星座是根据出生月日(11~14位)进行匹配;例如,当出生日期在3月21日和4月19日之间就为白羊座,其他星座按此继续编写。二、设计思路1、 星座的划分是两个日期的区间,当日期小于10日的学生出生日,如…

    2022年6月23日
    0139
  • PHP中的负载均衡器。

    负载均衡器(Load Balancer)是一种重要的技术,它可以在多个服务器之间分配请求,确保每个服务器都不会过载,并且尽可能提高系统可用性和性能。PHP是一种在Web应用程序开发中常用的编程语言,而在PHP中,使用负载…

    2023年5月28日
    00
  • 如何在PHP中实现社交网站。

    随着互联网的普及和社交化趋势的加强,社交网站成为了人们日常生活中不可或缺的一部分。在这个领域中,PHP是最流行的开发语言之一。本文将介绍如何使用PHP来实现一个基本的社交网站。1.设计数据库架构在开始编写代…

    2023年5月22日
    01

联系我们

QQ:951076433

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