Skip to content

第 4 章:变量、常量、数据类型

4.1 变量定义、命名规则

变量定义

在 PHP 中,变量使用 $ 符号开头,后面跟变量名。

php
<?php
$name = "John";
$age = 25;
$salary = 5000.50;
$is_active = true;
?>

命名规则

  1. 变量名必须以字母或下划线开头
  2. 变量名只能包含字母、数字和下划线
  3. 变量名区分大小写
  4. 变量名不能使用 PHP 关键字
php
<?php
// 正确的变量名
$name = "John";
$user_name = "John Doe";
$_age = 25;

// 错误的变量名
$123name = "John"; // 不能以数字开头
$user-name = "John"; // 不能包含连字符
$class = "PHP";
// 不建议使用关键字作为变量名
?>

4.2 可变变量、预定义变量

可变变量

可变变量允许你使用另一个变量的值作为变量名。

php
<?php
$name = "age";
$$name = 25; // 相当于 $age = 25

echo $age; // 输出 25
?>

预定义变量

PHP 提供了许多预定义变量,用于获取服务器和环境信息。

常用预定义变量

  • $_GET:获取 GET 请求参数
  • $_POST:获取 POST 请求参数
  • $_REQUEST:获取 GET、POST 和 COOKIE 参数
  • $_SESSION:获取会话变量
  • $_COOKIE:获取 cookie 变量
  • $_SERVER:获取服务器信息
  • $_FILES:获取上传文件信息
php
<?php
// 获取 GET 参数
$id = $_GET['id'] ?? 1;

// 获取服务器信息
echo $_SERVER['SERVER_NAME']; // 输出服务器域名
echo $_SERVER['REQUEST_URI']; // 输出请求路径
?>

4.3 常量 define /const

使用 define() 函数定义常量

php
<?php
define('PI', 3.14159);
define('SITE_NAME', 'PHP 学习教程');

echo PI; // 输出 3.14159
echo SITE_NAME; // 输出 PHP 学习教程
?>

使用 const 关键字定义常量

php
<?php
const PI = 3.14159;
const SITE_NAME = 'PHP 学习教程';

echo PI; // 输出 3.14159
echo SITE_NAME; // 输出 PHP 学习教程
?>

常量的特点

  • 常量一旦定义,就不能被修改
  • 常量不需要使用 $ 符号
  • 常量名通常使用大写字母
  • 常量可以在任何作用域中访问

4.4 数据类型:字符串、整数、浮点数、布尔、数组、null

字符串(string)

php
<?php
// 单引号字符串
$str1 = 'Hello, PHP!';

// 双引号字符串(支持变量插值)
$name = "John";
$str2 = "Hello, $name!";

//  heredoc 语法
$str3 = <<<EOT
This is a multi-line string.
It can contain multiple lines.
EOT;

// nowdoc 语法(不解析变量)
$str4 = <<<'EOT'
This is a multi-line string.
It does not parse variables: $name
EOT;
?>

整数(integer)

php
<?php
$int1 = 123; // 十进制
$int2 = 0123; // 八进制(以 0 开头)
$int3 = 0x1A; // 十六进制(以 0x 开头)
$int4 = 0b1010; // 二进制(以 0b 开头)
?>

浮点数(float/double)

php
<?php
$float1 = 123.45;
$float2 = 1.2345e2; // 科学计数法,相当于 123.45
?>

布尔(boolean)

php
<?php
$bool1 = true;
$bool2 = false;
?>

数组(array)

php
<?php
// 索引数组
$arr1 = array(1, 2, 3, 4, 5);
$arr2 = [1, 2, 3, 4, 5]; // 短语法

// 关联数组
$arr3 = array(
    'name' => 'John',
    'age' => 25,
    'email' => 'john@example.com'
);
$arr4 = [
    'name' => 'John',
    'age' => 25,
    'email' => 'john@example.com'
]; // 短语法
?>

null

php
<?php
$var = null; // 变量值为 null

// 以下情况变量也会被视为 null
$var1; // 未赋值的变量
$var2 = ''; // 空字符串
$var3 = 0; // 数字 0
$var4 = false; // 布尔 false
?>

4.5 类型判断与类型转换

类型判断

php
<?php
$var = "123";

echo gettype($var); // 输出 string

echo is_string($var); // 输出 1 (true)
echo is_int($var); // 输出 (false)
echo is_bool($var); // 输出 (false)
echo is_array($var); // 输出 (false)
echo is_null($var); // 输出 (false)
?>

类型转换

自动类型转换

PHP 会根据上下文自动转换类型。

php
<?php
$num = 123;
$str = "456";
$result = $num + $str; // $str 自动转换为整数

echo $result; // 输出 579
?>

强制类型转换

php
<?php
// 转换为整数
$var = "123";
$int_var = (int)$var;

// 转换为浮点数
$var = "123.45";
$float_var = (float)$var;

// 转换为字符串
$var = 123;
$str_var = (string)$var;

// 转换为布尔
$var = 0;
$bool_var = (bool)$var; // false

// 转换为数组
$var = "hello";
$arr_var = (array)$var;
?>

4.6 实操:变量运算与数据转换

创建 variables-demo.php 文件

php
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>变量运算与数据转换</title>
</head>
<body>
    <h1>变量运算与数据转换</h1>
    
    <?php
    // 变量定义
    $name = "PHP 学习者";
    $age = 20;
    $height = 1.75;
    $is_student = true;
    
    // 输出变量信息
    echo '<h2>变量信息</h2>';
    echo "姓名:$name<br>";
    echo "年龄:$age<br>";
    echo "身高:$height<br>";
    echo "是否学生:" . ($is_student ? '是' : '否') . '<br>';
    
    // 变量运算
    echo '<h2>变量运算</h2>';
    $a = 10;
    $b = 5;
    echo "$a + $b = " . ($a + $b) . '<br>';
    echo "$a - $b = " . ($a - $b) . '<br>';
    echo "$a * $b = " . ($a * $b) . '<br>';
    echo "$a / $b = " . ($a / $b) . '<br>';
    echo "$a % $b = " . ($a % $b) . '<br>';
    
    // 数据类型转换
    echo '<h2>数据类型转换</h2>';
    $str_num = "123";
    $int_num = (int)$str_num;
    $float_num = (float)$str_num;
    
    echo "字符串 '$str_num' 转换为整数:$int_num (类型:" . gettype($int_num) . ")<br>";
    echo "字符串 '$str_num' 转换为浮点数:$float_num (类型:" . gettype($float_num) . ")<br>";
    
    // 数组操作
    echo '<h2>数组操作</h2>';
    $students = [
        ['name' => '张三', 'age' => 18],
        ['name' => '李四', 'age' => 19],
        ['name' => '王五', 'age' => 20]
    ];
    
    foreach ($students as $student) {
        echo "姓名:{$student['name']},年龄:{$student['age']}<br>";
    }
    
    // 常量使用
    echo '<h2>常量使用</h2>';
    define('SCHOOL_NAME', 'PHP 学院');
    const MAX_AGE = 100;
    
    echo "学校名称:" . SCHOOL_NAME . '<br>';
    echo "最大年龄:" . MAX_AGE . '<br>';
    ?>
</body>
</html>

访问页面

  1. 将文件保存到网站根目录
  2. 打开浏览器,访问 http://localhost/variables-demo.php
  3. 查看页面效果

小结

通过本章的学习,你掌握了 PHP 变量的定义和命名规则,了解了可变变量和预定义变量,学习了 PHP 的数据类型和类型转换。这些知识是 PHP 编程的基础,为后续的学习奠定了坚实的基础。

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