Skip to content

4.1 变量定义、命名规则

变量是 PHP 中存储数据的基本单元。在本教程中,我们将学习如何定义变量以及变量的命名规则。

1. 变量的定义

在 PHP 中,变量以 $ 符号开头,后跟变量名。变量不需要声明类型,直接赋值即可。

基本语法

php
$variable_name = value;

示例

php
// 定义字符串变量
$name = "John";

// 定义整数变量
$age = 30;

// 定义浮点数变量
$price = 19.99;

// 定义布尔变量
$is_active = true;

// 定义数组变量
$colors = ["red", "green", "blue"];

// 定义对象变量
$person = new stdClass();
$person->name = "John";
$person->age = 30;

2. 变量命名规则

PHP 变量命名必须遵循以下规则:

2.1 基本规则

  • 必须以 $ 符号开头:所有变量都必须以 $ 符号开头
  • 变量名只能包含字母、数字和下划线:不能包含其他字符
  • 不能以数字开头:变量名必须以字母或下划线开头
  • 区分大小写$name$Name 是不同的变量

2.2 命名风格

  • 驼峰命名法$firstName$lastName(常用于类属性和方法)
  • 下划线命名法$first_name$last_name(常用于变量和函数)

2.3 示例

有效的变量名:

php
$name
$age
$user_name
$firstName
$_variable
$var123

无效的变量名:

php
$123var     // 不能以数字开头
$name-age   // 不能包含连字符
$name@age   // 不能包含特殊字符

3. 变量的使用

3.1 输出变量

php
$name = "John";
echo "Hello, $name!";
// 输出: Hello, John!

// 或
 echo 'Hello, ' . $name . '!';
// 输出: Hello, John!

3.2 修改变量值

php
$count = 1;
echo $count;  // 输出: 1

$count = 2;
echo $count;  // 输出: 2

$count = $count + 1;
echo $count;  // 输出: 3

3.3 变量的作用域

  • 局部变量:在函数内部定义的变量,只在函数内部有效
  • 全局变量:在函数外部定义的变量,在函数内部需要使用 global 关键字访问
  • 静态变量:在函数内部定义的变量,使用 static 关键字,函数执行完毕后值不会丢失

4. 可变变量

PHP 支持可变变量,即变量名可以动态变化。

php
$var = "name";
$$var = "John";
echo $name;  // 输出: John

5. 预定义变量

PHP 提供了许多预定义变量,用于获取各种信息:

5.1 超全局变量

  • $_GET:获取 GET 请求参数
  • $_POST:获取 POST 请求参数
  • $_REQUEST:获取 GET、POST 和 COOKIE 参数
  • $_SESSION:获取会话变量
  • $_COOKIE:获取 COOKIE 变量
  • $_SERVER:获取服务器信息
  • $_FILES:获取上传文件信息
  • $_ENV:获取环境变量

5.2 示例

php
// 获取 GET 参数
$id = $_GET['id'];

// 获取服务器信息
echo $_SERVER['SERVER_NAME'];
echo $_SERVER['PHP_SELF'];

6. 变量的类型转换

PHP 是弱类型语言,变量类型会根据使用情况自动转换。也可以手动转换类型:

6.1 自动类型转换

php
$num = 123;      // 整数
$num = $num + 0.5; // 自动转换为浮点数
echo $num;       // 输出: 123.5

6.2 手动类型转换

php
// 转换为整数
$num = (int) "123.45";
echo $num;  // 输出: 123

// 转换为浮点数
$num = (float) "123";
echo $num;  // 输出: 123.0

// 转换为字符串
$num = (string) 123;
echo $num;  // 输出: "123"

// 转换为布尔值
$var = (bool) "";
echo $var;  // 输出: false

7. 变量的销毁

使用 unset() 函数可以销毁变量:

php
$name = "John";
echo $name;  // 输出: John

unset($name);
echo $name;  // 输出: Notice: Undefined variable: name

8. 变量的引用

PHP 支持变量引用,使用 & 符号:

php
$a = 10;
$b = &$a;  // $b 是 $a 的引用

$b = 20;
echo $a;  // 输出: 20,因为 $b 是 $a 的引用

9. 最佳实践

9.1 变量命名

  • 语义化:变量名应该能清楚地表达变量的用途
  • 一致性:在项目中使用一致的命名风格
  • 简洁性:变量名应该简洁明了,避免过长

9.2 变量使用

  • 初始化变量:在使用变量前先初始化
  • 避免未定义变量:确保所有变量都已定义
  • 合理使用作用域:根据需要选择合适的变量作用域
  • 避免变量名冲突:在不同作用域中使用不同的变量名

9.3 性能考虑

  • 避免不必要的变量:只创建必要的变量
  • 避免变量复制:对于大变量,考虑使用引用
  • 及时销毁变量:对于不再使用的大变量,使用 unset() 销毁

10. 示例:变量的使用

php
<?php
// 定义变量
$name = "张三";
$age = 25;
$height = 1.75;
$is_student = true;

// 输出变量
echo "姓名:$name<br>";
echo "年龄:$age<br>";
echo "身高:$height<br>";
echo "是否是学生:" . ($is_student ? "是" : "否") . "<br>";

// 修改变量值
$age = $age + 1;
echo "一年后年龄:$age<br>";

// 变量运算
$birth_year = date('Y') - $age;
echo "出生年份:$birth_year<br>";

// 可变变量
$var_name = "name";
$$var_name = "李四";
echo "通过可变变量修改后的姓名:$name<br>";

// 引用变量
$original = "原始值";
$reference = &$original;
$reference = "修改后的值";
echo "原始变量:$original<br>";
echo "引用变量:$reference<br>";

// 销毁变量
unset($name);
echo "尝试输出已销毁的变量:" . (isset($name) ? $name : "变量已销毁") . "<br>";
?>

11. 总结

变量是 PHP 编程的基础,掌握变量的定义、命名规则和使用方法对于编写 PHP 代码非常重要。通过本教程,你已经学会了:

  • 如何定义和使用变量
  • 变量的命名规则和命名风格
  • 可变变量和预定义变量
  • 变量的类型转换和销毁
  • 变量的引用和作用域

遵循最佳实践,合理使用变量,可以写出更加清晰、高效的 PHP 代码。

© 2026 编程马·菜鸟教程 版权所有