PHP变量、数据类型与常量
上一篇文章我们写出了第一个PHP程序,接触到了变量和字符串的概念。这篇文章会深入讲解PHP中的变量、数据类型和常量,这些是编程中最基础也最重要的概念。
一、变量基础
变量,你可以把它想象成一个有名字的储物盒。我们在盒子上贴个标签(变量名),然后往里面放东西(值)。
<?php$student_name = "张三"; // 字符串变量$student_age = 20; // 整型变量$student_height = 1.75; // 浮点型变量(带小数点的数字)$is_enrolled = true; // 布尔型变量(只有真或假)echo"学生信息:\n";echo"姓名:" . $student_name . "\n";echo"年龄:" . $student_age . "\n";echo"身高:" . $student_height . "米\n";echo"已入学:" . ($is_enrolled ? "是" : "否");?>
代码讲解:
$student_name = "张三":等号是赋值运算符,意思是把右边的值赋给左边的变量- PHP是弱类型语言,不需要声明变量类型,PHP会自动判断
true和false是布尔型的两个值,表示"真"和"假"($is_enrolled ? "是" : "否")是三元运算符,如果$is_enrolled为真,返回"是",否则返回"否"
输出结果:
学生信息:姓名:张三年龄:20身高:1.75米已入学:是
二、PHP中的数据类型
PHP有8种基本数据类型:
1. 整型(Integer)
<?php$year = 2024;$population = 1400000000;$temperature = -5;echo"今年是" . $year . "年\n";echo"中国人口约" . $population . "人\n";echo"当前温度" . $temperature . "度";?>
整型就是整数,可以是正数、负数或零。PHP中的整型没有大小限制(受服务器内存限制)。
2. 浮点型(Float)
<?php$price = 19.99; // 价格$pi = 3.14159; // 圆周率$weight = 65.5; // 体重(公斤)echo"商品价格:¥" . $price . "\n";echo"圆周率约等于:" . $pi . "\n";echo"体重:" . $weight . "公斤";?>
浮点型就是带小数点的数字,也叫浮点数或双精度数。注意:浮点数比较时不要用==,因为精度问题可能会有误差。
3. 字符串(String)
<?php$greeting = "你好";$name = "小红";$message = "{$greeting},{$name}!"; // 双引号内可以直接使用变量echo$message . "\n";// 字符串函数echo"字符串长度:" . strlen($name) . "\n"; // strlen 计算字符数echo"姓名字符数:" . mb_strlen($name) . "\n"; // mb_strlen 支持中文?>
代码讲解:
- 双引号中的
{$variable}可以直接插入变量,更方便阅读 strlen()函数计算字符串长度,但中文可能乱码
4. 布尔型(Boolean)
<?php$is_student = true;$is_teacher = false;if ($is_student) {echo"我是一名学生\n";}if (!$is_teacher) { // ! 表示"不是"echo"我不是老师";}?>
布尔型只有两个值:true(真)和false(假)。在条件判断中非常有用。
5. 数组(Array)
<?php// 索引数组$fruits = array("苹果", "香蕉", "橙子", "葡萄");// PHP 5.4+ 可以用简写$fruits = ["苹果", "香蕉", "橙子", "葡萄"];echo"第一种水果:" . $fruits[0] . "\n"; // 数组索引从0开始echo"第二种水果:" . $fruits[1] . "\n";// 关联数组(类似字典)$student = ["name" => "李四","age" => 21,"major" => "计算机"];echo"学生姓名:" . $student["name"] . "\n";echo"学生专业:" . $student["major"];?>
代码讲解:
$fruits[0]访问第一个元素,因为索引从0开始
6. 对象(Object)
<?phpclassStudent{public$name;public$age;functionintroduce() {echo"我叫" . $this->name . ",今年" . $this->age . "岁"; }}$student = newStudent(); // 创建对象$student->name = "王五"; // 给对象属性赋值$student->age = 19;$student->introduce(); // 调用对象方法?>
对象是面向对象编程的基础,我们会在最后一篇文章详细讲解。
7. NULL空值
<?php$empty_variable = NULL; // NULL 表示"空",即没有值if ($empty_variable === NULL) { // === 表示"完全等于"echo"这个变量是空的";}?>
NULL表示变量没有值。注意要用===来判断NULL,因为0 == NULL返回true,但0 === NULL返回false。
三、常量
常量是不变的量,一旦定义就不能修改。
<?php// 定义常量define("SCHOOL_NAME", "清华大学"); // 学校名称define("MAX_STUDENTS", 1000); // 最大学生数constPI = 3.14159; // 圆周率(另一种定义方式)echo"学校名称:" . SCHOOL_NAME . "\n";echo"最大学生数:" . MAX_STUDENTS . "\n";echo"圆周率:" . PI . "\n";// 预定义常量echo"当前PHP版本:" . PHP_VERSION . "\n";echo"操作系统:" . PHP_OS;?>
代码讲解:
- PHP内置了很多预定义常量,如
PHP_VERSION返回当前PHP版本
四、类型转换
<?php$num_str = "123"; // 字符串$num_int = (int)$num_str; // 转换为整型echo"字符串转整型:" . $num_int . "\n";$price = 19.99;$price_int = (int)$price; // 浮点转整型,小数部分会被丢弃echo"浮点转整型:" . $price_int . "\n";$bool = true;$bool_str = (string)$bool;echo"布尔转字符串:" . $bool_str . "\n"; // true 变成 "1"?>
五、写在最后
这篇文章介绍了PHP的变量和数据类型。记住:变量是编程的基石,选择合适的数据类型能让代码更清晰、更高效。下篇文章我们会学习运算符和条件控制语句。