PHP 数据类型


2021年8月23日, Learn eTutorial
2566

作为一种解释型语言,PHP 不需要声明数据类型。在 PHP 中,数据类型用于定义分配给变量的值的类型。分配给变量的内存是基于数据类型的。PHP 函数 var_dump() 用于返回变量的数据类型和值。PHP 中有八种基本数据类型,它们进一步分为三个类别。

PHP - Datatypes

标量类型

标量类型是包含单个值的预定义数据类型。有四种标量数据类型,包括

  1. 字符串
  2. 整型
  3. 浮点型(或双精度型)
  4. 布尔型

PHP 字符串

字符串数据类型是字母数字字符的序列。基本上它是一种非数字数据类型。字符串可以是字母、单词、数字和特殊字符。字符串值将用单引号(' ')或双引号(" ")括起来。在将字符串赋值给变量时,它们被认为是相同的,但在某些情况下有所不同。

我们可以通过示例来了解区别


<?php
 $welcome = “Welcome to PHP tutorial”;
 $intro = ‘Where we learn to code in PHP’;
 echo “$welcome !. $intro”;
?>

输出


Welcome to PHP tutorial !. Where we learn to code in PHP

<?php
 $welcome = “Welcome to PHP tutorial”;
 $intro = ‘Where we learn to code in PHP’;
 echo ‘$welcome !. $intro’;
?>

输出


$welcome !. $intro

在上面的示例中,我们可以看到我们已将字符串分别赋值给变量,并使用了单引号和双引号,它们都被同等对待。在第一个示例中,使用双引号打印变量时,它打印了变量的值;但在第二个示例中,我们使用单引号打印变量时,它打印了单引号内的内容,而不是变量的值。这是单引号和双引号之间的唯一区别。

PHP 整型

整型数据类型是数值数据类型;它是一个整数。它可以是正数或负数。由于它是一个整数,它不能有小数部分或小数点。整数可以是十进制(基数为 10)、八进制(基数为 8)或十六进制(基数为 16),十进制是默认值。PHP 中不需要为整数声明。
 


<?php
 $age = 23;
 $sum = 10 + 5;
 echo $age;
 echo “\n”;
 echo $sum;
?>


输出


23
15

为了区分 PHP 中的十进制、八进制和十六进制,我们对八进制使用前导 0,对十六进制使用前导 0x。

例如,


<?php
    $decimal = 10;
    $octal = 015;
    $hexadecimal = 0x22;
    echo "Decimal: $decimal \n";
    echo "Octal: $octal \n";
    echo "Hexadecimal: $hexadecimal \n";
?>


输出


Decimal: 10
Octal: 13
Hexadecimal: 34

PHP 浮点型

浮点型数据类型也称为双精度数据类型;它包含分数或带小数点的数字。它也可以是负数或正数。它至少需要一个小数点才能成为浮点型数据类型。在 PHP 中,将浮点数与整数相加没有问题。


<?php
    $num1 = 26.754;
    $num2 = 15.6;
    $sum = $num1 + $num2;
    echo "Sum = $sum \n";
    $n1 = 16.589;
    $n2 = 15;
    $sum2 = $n1 + $n2;
    echo "Sum = $sum2";
?>

输出


Sum = 42.354
Sum = 31.589

PHP 布尔型

布尔型数据类型只有两个值 TRUE(1)或 FALSE(0)。它是最简单的数据类型。它主要用于条件语句。

示例


<?php
    // TRUE case 
    $t = TRUE;
    if($t){
        echo "This is TRUE statement";
    }
    else{
        echo "This is FALSE statement";
    }
    echo "\n";
    // FALSE case
    $f = FALSE;
    if($f){
        echo "This is TRUE statement";
    }
    else{
        echo "This is FALSE statement";
    }
?>


输出


This is TRUE statement
This is FALSE statement

在上面的示例中,变量“t”的值为 TRUE,然后在 if 条件中,所以 if 块被执行,变量“f”的值为 FALSE,然后在 if 条件中,所以 else 块被执行。

复合类型

复合类型是用户定义的数据类型。复合数据类型可以包含多个值。有两种复合数据类型:

  1. 数组
  2. 对象

PHP 数组

数组是 PHP 的复合数据类型之一。数组可以在单个变量中存储多个相同的值。PHP 中有三种类型的数组:数字数组、关联数组和多维数组。我们将在接下来的模块中了解更多关于数组的内容。

示例


<?php
    $programing_languages = array("PHP", "Python", "Java", "C++");
    echo $programing_languages[0];
?>

输出


PHP

PHP 对象

对象和类是面向对象编程最重要的方面。类是对象的模板,对象是类的实例。对象也用于存储多个值。我们将在接下来的模块中了解更多关于对象的内容。

示例


<?php   
     class Tutorial {  
          function welcome($name) {  

               echo "Hi! $name welcome to PHP Tutorial.";  
             }  
     }  
     $obj = new Tutorial();  
     $obj -> welcome("John");  
?>  


输出


Hi! John welcome to PHP Tutorial.

特殊类型

特殊数据类型包含特殊值。有两种特殊数据类型:

  1. NULL
  2. 资源

PHP NULL

NULL 是一种特殊数据类型。NULL 数据类型只包含一个值,即“NULL”。在 PHP 中,NULL 数据类型用于给变量赋空值。它也用于清空变量。分配 NULL 的约定方式是大写字母,但实际上 NULL 不区分大小写。
 


<?php   
 $x = NULL;
 echo $x;
?>  

对于上面的示例,输出将是空白的,因为变量‘x’没有值。为了正确看到数据类型已分配,我们应该使用 var_dump() 函数。


<?php
    $x = "hello";
    var_dump($x);
    $x = NULL;
    var_dump($x);
?>

输出


string(5) “hello”
NULL

PHP 资源

资源数据类型是一种特殊数据类型。在 PHP 中,资源数据类型并不是实际的数据类型。资源数据类型主要用于存储外部资源。通常是数据库调用。在 PHP 中,get_resource_type() 是用于返回变量资源类型的预定义函数。

使用 var_dump() 的示例


<?php
$file_open = fopen("test.txt","w");
var_dump($fp);
?>


输出


resource(5) of type (stream)

使用 get_resource_type() 的示例


<?php
$file_open = fopen("test.txt","w");
echo get_resource_type($file_open);
?>

输出


stream

在给出的示例中,我们使用了 fopen 函数来打开或创建系统中的文件。我们将在接下来的模块中了解更多关于资源的内容。