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

admin 2023-12-19 466 阅读 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 学习之旅。

喜欢就支持以下吧
点赞 0

发表评论

快捷回复: 表情:
aoman baiyan bishi bizui cahan ciya dabing daku deyi doge fadai fanu fendou ganga guzhang haixiu hanxiao zuohengheng zhuakuang zhouma zhemo zhayanjian zaijian yun youhengheng yiwen yinxian xu xieyanxiao xiaoku xiaojiujie xia wunai wozuimei weixiao weiqu tuosai tu touxiao tiaopi shui se saorao qiudale qinqin qiaoda piezui penxue nanguo liulei liuhan lenghan leiben kun kuaikule ku koubi kelian keai jingya jingxi jingkong jie huaixiao haqian aini OK qiang quantou shengli woshou gouyin baoquan aixin bangbangtang xiaoyanger xigua hexie pijiu lanqiu juhua hecai haobang caidao baojin chi dan kulou shuai shouqiang yangtuo youling
提交
评论列表 (有 0 条评论, 466人围观)

最近发表

热门文章

最新留言

热门推荐

标签列表