变量
变量保留一个值,供将来参考。如果我们想让它发生变化,这个值就会发生变化,这就是变量被称为变量的原因。让我们通过一个例子来了解它们。将此代码保存在你的 index.php
文件中:
<?php
$a = 1;
$b = 2;
$c = $a + $b;
echo $c; // 3
在前面这段代码中,我们有三个变量:$a
的值为 1,$b
的值为 2,$c
包含 $a
和 $b
的和,因此,$c
等于 3。
给变量赋值就是给它一个值,如上例所示,使用等号来完成。如果没有给变量赋值,PHP 在检查变量内容时就会发出通知。通知只是一条信息,告诉我们有些东西不完全正确,但这只是个小问题,可以继续执行。未赋值变量的值将为空,即什么也没有。
PHP 变量以 $
符号开头,后跟变量名。有效的变量名以字母或下划线开头,后跟字母、数字和/或下划线的任意组合。变量名区分大小写。我们来看几个例子:
<?php
$_some_value = 'abc'; // valid
$1number = 12.3; // not valid!
$some$signs% = '&^%'; // not valid!
$go_2_home = "ok"; // valid
$go_2_Home = 'no'; // this is a different variable
$isThisCamelCase = true; // camel case
请记住 //
后面的所有内容都是注释,因此会被 PHP 忽略。
在这段代码中,我们可以看到像 $_some_value
和 $goo_2_home
这样的变量名是有效的。$1number
和 $some$signs%
则无效,因为它们以数字开头,或者包含无效符号。由于名称区分大小写,$go_2_home
和 $go_2_Home
是两个不同的变量。最后,我们展示了 CamelCase 规范,这是大多数开发人员的首选。
数据类型
我们不仅可以为变量分配数字。PHP 有八种基本类型,但现在我们将重点关注它的四种标量类型:
-
Booleans:布尔值:只表示真假值
-
Integers:是不带小数点的数值,例如 2 或 5
-
浮点数,float:这些是带有小数点的数字,例如 2.3
-
字符串:由单引号或双引号包围的字符串,如 'this' 或 "that"。
尽管 PHP 定义了这些类型,但它允许用户为同一个变量分配不同类型的数据。请看下面的代码,了解它是如何工作的:
<?php
$number = 123;
var_dump($number);
$number = 'abc';
var_dump($number);
如果您在浏览器上检查结果,您将看到以下内容:
int(123) string(3) "abc"
代码首先将 123 赋值给变量 $number
。由于 123 是一个整数,因此变量的类型将是 integer int。这就是我们用 var_dump
打印变量内容时看到的结果。之后,我们为同一个变量赋值,这次是一个字符串。在打印新内容时,我们看到变量的类型从整型变为了字符串,但 PHP 并没有报错。
让我们检查另一段代码:
<?php
$a = "1";
$b = 2;
var_dump($a + $b); // 3
var_dump($a . $b); // 12
您已经知道 +
运算符返回两个数值之和。稍后您将看到 .
操作符连接两个字符串。因此,前面的代码将一个字符串和一个整数赋值给两个变量,然后尝试将它们相加并连接起来。
在尝试相加时,PHP 知道需要两个数值,因此尝试将字符串调整为整数。在这种情况下,这很容易,因为字符串代表了一个有效的数字。这就是为什么我们看到第一个结果是整数 3 (1 + 2)。
在最后一行中,我们正在执行字符串连接。我们在 $b
中有一个整数,因此 PHP 会首先尝试将其转换为字符串,即 "2",然后将其与另一个字符串 "1" 连接起来。结果就是字符串 "12"。
类型杂耍 只有当需要的变量类型不同时,PHP 才会尝试转换变量的数据类型。但 PHP 不会改变变量本身的值和类型。取而代之的是,它会获取变量值并尝试对其进行转换,使变量保持不变。 |