Appearance
第 4 章:变量、常量、数据类型
4.1 变量定义、命名规则
变量定义
在 PHP 中,变量使用 $ 符号开头,后面跟变量名。
php
<?php
$name = "John";
$age = 25;
$salary = 5000.50;
$is_active = true;
?>命名规则
- 变量名必须以字母或下划线开头
- 变量名只能包含字母、数字和下划线
- 变量名区分大小写
- 变量名不能使用 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>访问页面
- 将文件保存到网站根目录
- 打开浏览器,访问
http://localhost/variables-demo.php - 查看页面效果
小结
通过本章的学习,你掌握了 PHP 变量的定义和命名规则,了解了可变变量和预定义变量,学习了 PHP 的数据类型和类型转换。这些知识是 PHP 编程的基础,为后续的学习奠定了坚实的基础。
