PHP 数据类型和变量:初学者必读

admin 2023-12-19 113 阅读 0评论

当学习一门新的编程语言时,了解该语言如何处理数据类型和变量是必不可少的。数据类型和变量是编程语言的基础,它们决定了我们可以如何在代码中存储和使用数据。

因此,无论您是 PHP 新手,还是刚刚开始学习编程并决定将 PHP 作为您的第一语言,了解 PHP 的数据类型和变量都是一个很好的起点。

变量

在学习任何编程语言时,了解数据类型和变量都是必不可少的。数据类型决定了我们可以如何存储和使用数据,而变量则提供了一种将数据存储在内存中的方法。

什么是变量?

变量是可以存储数据的标记。变量名称可以由字母、数字和下划线组成,但不能以数字开头。变量名称是区分大小写的。

如何声明变量?

在 PHP 中,变量是通过使用 符号声明的,后跟变量的名称。例如,以下代码声明了一个名为符号声明的,后跟变量的名称。例如,以下代码声明了一个名为name 的变量,该变量存储一个字符串:

$name = "Jordan Ulmer";

如果您是编程新手,请记住变量命名的重要性。变量名称应该是描述性的、清晰的和简洁的,以便任何人都可以理解它包含的内容,即使他们以前从未阅读过您的代码。

例如,在上面的代码中,name 变量名称并不清晰。它可以指代任何东西,例如用户名、网站名称或其他数据。

更好的变量名称是 userName,它清楚地表明了变量包含用户的名称。另一个更好的变量名称是 firstName 和 lastName,它们分别表示用户的姓名和名字。例如:

$userName = "Jordan Ulmer";

或者考虑这个:

$firstName"Jordan";
$lastName = "Ulmer";

PHP中定义变量的规则:

  • 在 PHP 中声明的任何变量都必须以美元符号 ($) 开头,后跟变量名称。
  • 变量名称不能以数字开头(尽管它们可以包含数字)。
  • 变量名称只能包含字母、数字和下划线(即“a-z”、“A-Z”、“0–9”和“_”)。
  • PHP 变量区分大小写。例如,和sum和SUM 的处理方式不同。

动态变量

动态变量是 PHP 的一个强大特性,可以用于各种目的。这意味着我们可以根据另一个变量的值动态创建命名变量。

例如

$firstName = "Jordan";

// 变量 $firstName 的值为 "Jordan"

$$firstName = "Bob";

// 我们创建了一个名为 $Jordan 的变量,并将其值设置为 "Bob"
// 执行完此行后,您将拥有两个变量:
// $firstName 的值为 "Jordan"
// $Jordan 的值为 "Bob"

echo $Jordan;

将输出:

Bob

基本数据类型

在编程中,核心数据类型称为原始类型。在 PHP 中,有八种基本数据类型。这些可以细分为三个子类型。

标量类型

只保存一个值。

  • 字符串:用于存储文本数据。
  • 整数:用于存储整数数据。
  • 浮点数:用于存储浮点数数据。
  • 布尔值:用于存储真或假值。

复合类型

可以保存多个值

  • 数组:用于存储一组相关的数据。
  • 对象:用于存储复杂的数据结构。

特殊类型

  • 资源:用于指向外部资源,例如文件或数据库连接。
  • 空值:用于表示没有值。

字符串

在编程中,字符串是一种数据类型,用于存储文本数据。字符串可以包含任何字母、数字、空格、特殊字符等。

字符串可以用单引号或双引号括起来,两者没有区别:

$string = 'Hello';

或者双引号:

$string = “Hello”;

PHP 字符串中的单引号与双引号

单引号中的字符串按字面意思处理。这意味着单引号字符串中的所有字符都将被保留,包括转义字符。例如,以下代码将输出:

$firstName = "Jordan";
$string = 'Hello $firstName';
echo $string;

输出:

Hello $firstName

双引号中的字符串允许变量插值。这意味着双引号字符串中的变量名称将被替换为它们的值。例如,以下代码将输出:

$firstName = "Jordan";
$string = "Hello $firstName";
echo $string;

输出:

Hello Jordan;

在 PHP 中使用字符串

PHP 提供了一系列内置函数,用于操作字符串。这些函数使我们能够轻松地执行常见的字符串操作,而无需编写自己的代码。

一个常见的字符串操作是将字符串转换为大写或小写。PHP 提供了两个内置函数来执行此操作:

  • strtoupper():将字符串转换为大写。
  • strtolower():将字符串转换为小写。

例如,以下代码将将字符串 "Jordan" 转换为大写和小写:

$firstName = "Jordan";
$upperCase = strtoupper($firstName);
$lowerCase = strtolower($firstName);
echo $upperCase"<br>";
echo $lowerCase;

将输出:

JORDAN
jordan

PHP 还提供了许多其他内置函数,用于执行常见的字符串操作,例如:

  • strlen():返回字符串的长度。
  • substr():返回字符串的一部分。
  • str_replace():替换字符串中的字符。
  • trim():删除字符串中的空格。

整数

整数是表示数值的一种数据类型。它们可以是正数、负数或 0。

PHP 可以处理十进制数、八进制数、十六进制数和二进制数。

  • 十进制数是使用 0-9 数字的数值。例如,10、-10 和 0 都是十进制数。

  • 八进制数是使用 0-7 数字的数值。八进制数以 0o 或 0O 开头。例如,0o10、-0o10 和 0o0 都是八进制数。

  • 十六进制数是使用 0-9 和 A-F 数字的数值。十六进制数以 0x 或 0X 开头。例如,0x10、-0x10 和 0x0 都是十六进制数。

  • 二进制数是使用 0 和 1 数字的数值。二进制数以 0b 或 0B 开头。例如,0b10、-0b10 和 0b0 都是二进制数。

整型变量的创建方式如下:

$a = 10; // 十进制
$b = 0o10; // 八进制
$c = 0x10; // 十六进制
$d = 0b10; // 二进制

浮点数

浮点数是表示数值的一种数据类型。它们可以是正数、负数,并且可以包含小数部分。

浮点数可以使用通常的十进制表示法来表示:

$floatNumber = 3.14;

科学计数法:

PHP 允许使用科学计数法来表示非常大或非常小的浮点值。科学计数法使用指数来表示小数部分的位数:

$scientificFloat = 1.2e3;   // 1200.0 
$smallFloat = 1.2e-3;       // 0.0012

精确:

由于计算机表示浮点数的方式,PHP 中的浮点数并不总是精确的。这意味着涉及浮点数的运算有时可能会导致轻微的误差。

对于大多数应用程序来说,浮点数的精度问题并不重要。但是,如果您正在从事科学项目或银行工作等需要高度精确的应用程序,则需要注意这一点。

浮点数有时也称为双精度浮点数。在 PHP 中,这两种类型是相同的。但是,在某些语言(例如 Java)中,浮点型和双精度型之间存在差异。

数学运算:

您可以对整数和浮点数执行数学运算。

PHP 支持所有标准的整数数学运算:加法 (+)、减法 (-)、乘法 (*)、除法 (/) 和模数 (%)。

以下是一些示例:

$a = 10;
$b = 3;

$sum = $a + $b; // 13
$difference = $a - $b; // 7
$product = $a * $b; // 30
$quotient = $a / $b; // 3.333…
$remainder = $a % $b; // 1

布尔值

布尔值是一种可以表示真或假的数据类型。它们是控制程序执行流程的基础,例如 IF ELSE 语句和循环控制程序。

在 PHP 中,布尔值区分大小写。TRUE 和 TRUE 都有效,但约定是使用大写:TRUE 和 FALSE

NULL 值在布尔值中也被视为 FALSE。此外,0 和空字符串也被视为 FALSE

这涵盖了标量类型(保存一个值的类型)。接下来是复合类型:数组和对象,它们可以保存多个值。

数组

数组是 PHP 中一种通用的基本数据结构,允许在单个变量中存储和操作多个值。数组非常常见,是处理分组数据的重要组成部分。

PHP 支持两种类型的数组:索引数组和关联数组。

索引数组:

索引数组(有时也称为数值数组)是一种数据结构,用于存储具有数字索引的元素。索引数组中的元素可以是任何数据类型,包括字符串、数字、布尔值和对象。

有两种方法创建索引数组:

使用 array() 函数:

$arrayOfNames = array("Gale""Karlach""Astartion");

使用方括号:

$arrayOfNames = ["Gale""Karlach""Astartion"];

可以通过引用正在访问的元素的索引来访问索引数组元素。例如:

$arrayOfNames = array("Gale""Karlach""Astartion");

$gale = $arrayOfNames[0];
$karlach = $arrayOfNames[1];
$astarion = $arrayOfNames[2];

echo $arrayOfNames[2]; // Astarion
echo $astarion; // Astarion

关联数组:

关联数组是一种数据结构,用于存储具有命名键的元素。关联数组中的元素可以是任何数据类型,包括字符串、数字、布尔值和对象。

有两种方法创建关联数组:

$arrayOfNames = array("Wizard" => "Gale""Barbarian" => "Karlach""Rogue" => "Astartion");

您还可以对关联数组使用简写方括号表示法。

$arrayOfNames = ["Wizard" => "Gale""Barbarian" => "Karlach""Rogue" => "Astartion"];

可以通过引用键来访问关联数组元素。例如:

$arrayOfNames = ["Wizard" => "Gale""Barbarian" => "Karlach""Rogue" => "Astartion"];

$gale = $arrayOfNames["Wizard"];
$karlach = $arrayOfNames["Barbarian"];
$astarion = $arrayOfNames["Rogue"];

echo $arrayOfNames["Rogue"]; // Astarion
echo $astarion; // Astarion

数组不仅仅可以容纳字符串和数字,还可以容纳子数组和对象。子数组和对象可以是任何数据类型的集合,包括字符串、数字、布尔值、其他数组和对象。

例如:

$baldursGate3Characters = [
    "playable" => [
        "Wizard" => "Gale",
        "Barbarian" => "Karlach",
        "Rogue" => "Astartion"
    ],
    "non-playable" => [
        "Gortash",
        "Ketherick",
        "Orrin"
    ]
];

此数组包含两个子数组:

  • "playable" 子数组是一个关联数组,包含三个键值对。
  • "non-playable" 子数组是一个索引数组,包含三个元素。

可以使用 var_dump() 函数来查看数组的结构:

var_dump($baldursGate3Characters);

输出:

array(2) {
  ["playable"] => array(3) {
    ["Wizard"] => string(4) "Gale"
    ["Barbarian"] => string(7) "Karlach"
    ["Rogue"] => string(9) "Astartion"
  }
  ["non-playable"] => array(3) {
    [0] => string(7) "Gortash"
    [1] => string(9) "Ketherick"
    [2] => string(5) "Orrin"
  }
}

对象

对象是面向对象编程(OOP)中的一种基本概念。对象是用户定义的类的实例。

那么什么是类呢?

类是用于创建对象的蓝图或模板。类定义了对象的属性(属性)和函数(方法)。属性是对象的数据,而方法是对象可以执行的操作。

类本质上是一种用户定义的数据类型,它封装了数据以及可以对该数据执行的操作。

可以将类和对象类比为现实世界中的物理实例。例如,乐高积木的模具就是类。模具定义了乐高积木的形状和功能。而乐高积木本身就是对象。每个乐高积木都具有相同的形状,但可以具有不同的颜色和装饰。

对象是使用 new 关键字声明和创建的。在乐高积木的类比中,如果我们想为乐高汽车零件创建一个类,我们可以这样做:

class Car {
    public $color;
    public $size;

    public function move() {
        echo "Vroom!";
    }
}

这个类定义了两个属性:color 和 size,以及一个方法:move()

为了创建这辆车的实例(对象),我们像这样调用该类:

$redCar = new Car();
$redCar->color = "red";
$redCar->size = "small";

PHP 中的对象是一个复杂的主题,需要用一整篇文章来全面解释,但这篇文章至少让您了解对象是什么,以及我们如何在 PHP 中使用它们。

特殊类型

特殊类型包括资源和 NULL。

PHP 资源

在 PHP 中,资源是一种特殊类型的变量,它保存对外部资源的引用。外部资源是指由操作系统或其他程序创建的对象,例如数据库连接、文件句柄或网络套接字。

资源用于表示和管理超出 PHP 常规数据类型范围的外部实体。例如,可以使用资源来:

  • 连接到数据库
  • 打开文件
  • 创建网络连接

PHP 空值

在 PHP 中,空值(NULL)是一种特殊的数据类型,它表示没有值。空值区分大小写,因此约定以大写字母 NULL 表示。

Null 值可以用于表示:

  • 一个未定义的值
  • 一个未知的值
  • 一个无效的值

如果创建的变量没有值或没有值,则会自动为其分配空值。例如,以下代码将创建一个名为 nothing 的变量,并将其初始化为空值:

$nothing = NULL;
echo $nothing;    // this will return no output

PHP 的数据类型和变量各有复杂之处,一篇文章难以全面介绍。因此,本文旨在为您提供 PHP 数据类型和变量的概述,帮助您开启 PHP 学习之旅。

发表评论

快捷回复: 表情:
Addoil Applause Badlaugh Bomb Coffee Fabulous Facepalm Feces Frown Heyha Insidious KeepFighting NoProb PigHead Shocked Sinistersmile Slap Social Sweat Tolaugh Watermelon Witty Wow Yeah Yellowdog
提交
评论列表 (有 0 条评论, 113人围观)