Heim  >  Artikel  >  Backend-Entwicklung  >  PHP 数据类型 之 标量数据类型

PHP 数据类型 之 标量数据类型

WBOY
WBOYOriginal
2016-06-23 13:01:382804Durchsuche

写在前面

在程序员开发世界,程序操作的对象是数据,并且每一个数据都有其类型,具备相同类型的数据才可以互相操作,PHP 的数据类型可分为三种:标量数据类型、复合数据类型和特殊数据类型。

一、数据类型

1.标量数据类型

标量数据类型是数据结构最基础的单元,只能存储一个数据。在 PHP 中的标量数据类型分为四种:

类型 功能
boolean(布尔型) 最简单的数据类型,只有两个值:true(真) / false(假)
string(字符串) 字符串是连续的字符序列
integer(整型) 整型数据类型包含所有的整数,其可以是整数也可以是负数
float(浮点型) 浮点型数据类型也是用来存储数字,与整型不同它包含小数

1)布尔型(boolean)

布尔型是 PHP 中较为常用的数据类型之一,它保存一个真值(true) 或 假值(false)

// 代码:$a = true; // 真值$b = false; // 假值

2)字符串(string)

字符串是连续的字符序列,由数字、字母、符号组成,字符串的每个字符只占一个字节。字符包含以下几种类型

字符类型名 内容
数字类型 如:1、2、3等
字母类型 如:a、b、c等
特殊类型 如:#、$、^、&等
不可见类型 如:\n(换行符)、\r(回车)、\t(tab字符)等

不可见字符是比较特殊的字符用于控制字符串格式输出,在浏览器上不可见,只是能看到字符串的输出结果。

在 PHP 中有 3 种定义字符串的方式:

a.单引号(')

$a = 'zZ爱吃菜';

b.双引号(")

$b = "zZ爱吃菜";

单引号与双引号的区别:双引号所包含的变量会自动被替换成实际值,而单引号包含的变量则按普通类型输出。例如:

$a = 'hello';$b = '$a china';$c = "$a world"; // 个人建议这样写:$c = "{$a} world"; 不容易产生歧义echo $b;echo $c;结果:$a chinahello world
c.定界符(

如果用传统的输出方法——按字符串输出的话,肯定要有大量的转义符来对字符串中的引号等特殊字符进行转义,以免出现语法错误。如果是一两处还可以容忍,但是要是一个完整的html文本或者是一个200行的js我想是谁都会崩溃的。这就是PHP为什么要引入一个定界符的原因——至少一大部分原因是这样的。1.PHP 定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;2.PHP 定界符中字符串内容不需要转义

// 定义<<<Eof …… Eof;

不需要对付出转义的好处:直接输出你想要的 html 字符串

$name = 'kitty';echo <<<Eof<table height="20"><tr><td>{$name}<br/><script>var p='hello world';document.writeln(p);</script></td></tr></table><select><option>aaaaa</option><option>aaaaa</option><option>aaaaa</option></select>Eof;

注意:使用定界符输出字符串,结束标识符必须单独另起一行,并且不允许有空格。

3)整型(integer)

整型数据类型只能包含整数,在 32 位的操作系统中,有效范围是: -2147483648(2的31次方) ~ 217483647 (2的31次方-1)。整型可以使用十进制、八进制和十六进制表示,如:八进制(数字前面必须加0)、十六进制(数字前面必须加0x)

$int1 = 1234;$int2 = 01234;$int3 = 0x1234;echo "十进制的结果是:{$int1}<br>";echo "八进制的结果是:{$int2}<br>";echo "十六进制的结果是:{$int3}<br>";结果十进制的结果是:1234八进制的结果是:668十六进制的结果是:4660

注意:如果给定的数值超出了 int 型所能表示的最大范围,将会被当作 float 型处理,这种情况叫做:整型溢出。表达式最后的运算结果超出 int 范围,也会返回 float 型

4)浮点型(float)

浮点型数据类型可以用来存储整数,也可以保存小数。它提供的精度比整数大得多。 在32系统中有效范围: 1.7E-308 ~ 1.7E+308

在 PHP 4.0 之前的版本 浮点型被标识为 double,也叫双精度浮点数,两者没什么区别

// 定义$a = 1.036;$b = 2.035;$c = 3.48E2; // En代表10*n, E1 代表 * 10, $c = 348echo $c;结果:348
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn