PHP 数据类型和变量:初学者必读
当学习一门新的编程语言时,了解该语言如何处理数据类型和变量是必不可少的。数据类型和变量是编程语言的基础,它们决定了我们可以如何在代码中存储和使用数据。
因此,无论您是 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 学习之旅。
发表评论