首页 > 代码库 > PHP学习——数据类型

PHP学习——数据类型

PHP的数据是存在类型的概念的,弱类型指的是变量可以存储任何类型!一共8种,分别是:
整型、浮点型、布尔型、字符串(标量类型)

数组、对象(符合类型)

null、资源(特殊类型)

分成三大类:

标量类型:指的是一个数据表示一个值,也称为简单类型。

复合类型:指的是一个数据表示多个值,也称为集合类型。

特殊类型:不是常规数据,更倾向一种表示方式。

  • 布尔类型  bool    boolean
    •   表示逻辑的真和假,该数据就两个值 true表示真,false表示假,大小写不敏感~
      ?
      1
      2
      3
      4
      5
      <?php
       
      var_dump(True);
      var_dump(‘false‘);//使用引号是错误的
      ?>
      ?
      1
      2
      3
      4
      <?php
       
      var_dump(True);
      ?>

        浏览器显示为:

    boolean  true

通常在判断的时候:关系表达式、或者if()需要的的条件等等,都需要布尔类型

整型  int  integer

  表示整型的数据,整型是有范围的,一个整型只能占用4个字节(4*8bit=32bit,32位),字节是最基本的数据存储单位,

位,计算机能够处理的最小单元,0和1

可以用预定义常量PHP_INT_MAX来得到最大值,

 

?
1
2
3
4
5
6
7
<?php
 
$evil = 182323328;
var_dump($evil);
echo ‘<hr>‘;
echo $evilxr = PHP_INT_MAX;
?>

 

  

php的整型有正负之分,最高位为符号位,1为负,0为正

负叔也有最小值,-2147483648,最小值的绝对值,要比最大值的绝对值大一!原因在于都是补码计算机

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$evil = 182323328;
var_dump($evil);
echo ‘<hr>‘;
echo $evilxr = PHP_INT_MAX;
echo ‘<hr>‘;
echo $evilxr1 = -PHP_INT_MAX;//-2147483647
 
$evixr = $evilxr1 - 1;//-2147483648
var_dump($evilxr1);
var_dump($evixr-1)
?>

  

整型数据的表示

  整型支持三种表示方式,采用进制来区分,

  php支持的表示方式:十进制、八进制、十六进制。

  php提供了一些函数,可用于进制转换:

  

    10 dec

    2 bin

    8 oct

    16 hex

    decbin();

    hexdec();

      如——>Hexdec()十六转十:

?
1
2
3
4
5
6
<?php
 
 
echo ‘<hr>‘;
echo hexdec(‘ff‘);
?>

  

 

  浮点数  float

  php中没有区分单精度和双精度,因为只实现了双精度,浮点型就是双精度!

  浮点数,小数可以表示!

  

?
1
2
3
4
5
<?php
 
$evilxr = 40.4;
var_dump($evilxr);
?>

  整型不能表示的数也是浮点数:

  当数很大时,可以用科学计数法:

?
1
2
3
4
5
6
7
8
9
10
11
<?php
 
$evilxr = 40.4;
var_dump($evilxr);
echo ‘<hr>‘;
$kiss = 2E8;
var_dump($kiss);
echo ‘<hr>‘;
$kissme = 1e-4;//不能写成‘1e - 4’会报错
var_dump($kissme);
?>

  

 ps:几乎所遇小数,在保存时,保存的都是近似值而不是精确值~

字符串   string

  定义方式:单引号、双引号、定界符(heredoc)、定界符(newdoc)

  无论什么方式,最终得到的都是string字符串数据

    单引号:最简单、速度最快的定义字符串方式;

?
1
2
3
4
5
6
7
<?php
$akon = ‘this name is akon‘;
var_dump($akon);
echo ‘<hr>‘;
$tired = ‘I\‘m a dog!‘;//因为字符串中包含了单引号,所以就用到了转义字符
var_dump($tired);
?>

  

 

双引号:

?
1
2
3
4
5
6
7
8
9
10
11
<?php
$akon = ‘this name is akon‘;
var_dump($akon);
echo ‘<hr>‘;
$tired = ‘I\‘m a dog!‘;//因为字符串中包含了单引号,所以就用到了转义字符
var_dump($tired);
echo ‘<hr>‘;
$class_name1 = ‘hello, $tired‘;
$class_name2 = "hello, $tired";//单引号和双引号的区别就在于对字符串内容的解析;单引号不能对变量进行解析,而双引号可以,
var_dump($class_name1, $class_name2);
?>

  数组

  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$arr1 = array(‘key1‘=>‘Very tired‘,‘key2‘=>‘evil‘,);//创建一个含元素的数组
var_dump($arr1);//输出数值类容
echo ‘<hr>‘;
echo $arr1[‘key2‘];//访问数值中的元素
echo ‘<hr>‘;
$arr1[‘key3‘] = ‘kanvi‘;//增加数组元素
var_dump($arr1);
echo ‘<hr>‘;
var_dump(isset($arr1[‘key3‘]));//用isset()函数判断元素是否存在
echo ‘<hr>‘;
unset($arr1[‘key2‘]);//用unset()函数删除数组中的元素,也可删除数组
var_dump($arr1);
?>

  

 对象   Object

  和数组一样,可以保存多个数据,对象的每个数据称为对象的一个属性(property),php中中对象的创建,需要通过实例化(new)类(class)来完成

  类:相当于 设计图

  实例化:按照这几图制作一个成品(对象)的过程,对象能出现的前提是有一个类,类需要一个class关键字声明

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
class student{  //创建类
    public $name;
    public $age;
    public $gender;
}
$stu = new student; //创建对象
var_dump($stu);
echo ‘<hr>‘;
$stu->name = ‘好饿吖‘;
$stu->age = 22;
$stu->gender = ‘male‘;
var_dump($stu);
echo ‘<hr>‘;
var_dump($stu->age);
?>