PHP 变量和常量:变量的命名
问题
我们在 PHP 编程中,使用变量是不可避免的,那么我们在 PHP 代码中如何正确地命名一个变量呢?
说明
在 PHP 编程中,我们如果要使用一个 PHP 变量,我们必须遵循以下 PHP 变量命明规则:
- 变量以
$
符号开头,其后是变量的名称; - 变量名必须以字母或下划线开头;
- 变量名不能以数字开头;
- 变量名只能包含字母数字字符和下划线(
A-z
、0-9
以及_
); - 变量名对大小写敏感(
$y
与$Y
是两个不同的变量); - 变量在被创建之后,必须在被赋值之后才可以使用。
示例
例 1 —— 非法的变量名:
<?php
$110tel = '123';
运行结果:
Parse error: syntax error, unexpected '110' (T_LNUMBER), expecting variable (T_VARIABLE) or '{' or '$' in F:\index.php on line 3
从运行结果可以看出,以数字作为开头命名变量在 PHP 中是不被允许的。
例 2 —— 使用未赋值变量
<?php
$name;
echo "My name is $name"; // 使用未初始化的变量会产生 E_NOTICE 错误
运行结果:
Notice: Undefined variable: name in F:\workplace\php\variance_1.php on line 5
My name is
从运行结果可以看出,如果我们要正确使用一个变量必须先对其进行赋值,否则 PHP 会提示该变量未定义。
例 3 —— 合法的变量名
在本例,我们可以看看哪些是合法的变量名:
<?php
$englishName = 'Anna';
$中文名 = '安娜';
echo "$englishName 的中文名叫 $中文名 <br>";
$var123 = 123;
echo "\$var123 = $var123 <br>";
$total_price = 23.456;
echo "一斤葡萄的价格是:$total_price 元 <br>";
$_today = "2019-05-19 <br>";
echo "今天是:$_today";
运行结果:
Anna 的中文名叫 安娜
$var123 = 123
一斤葡萄的价格是:23.456 元
今天是:2019-05-19
例 3 中展示了一些合法的变量名,我们可以看到,中文变量名(每个字节的码值都在 0x80-0xff 范围内)也是受支持的(不推荐)。
例 4 —— 区分大小写的
<?php
$color = 'red';
$Color = 'green';
$COLOR = 'blue';
echo "color 是 $color <br>";
echo "Color 是 $Color <br>";
echo "COLOR 是 $COLOR";
运行结果:
color 是 red
Color 是 green
COLOR 是 blue
在例 4 中用单词 color
定义了三个变量,尽管是同一个单词,但变量名的大小写不同决定了它们是不同的变量。
提示
一类常见的 bug
就是由变量名大小写拼写错误引发的,所以在实际 PHP 编程中我们必须规范我们编程习惯。