一、回顾上节课内容
- PHP基本语法结构
- 变量的定义与使用
- echo和print输出内容
二、PHP数据类型详解
PHP是一种弱类型语言,但仍有8种基本数据类型:
1. 标量类型(4种)
(1) 整型(Integer)
<?php
$a = 123; // 十进制
$b = -456; // 负数
$c = 0123; // 八进制(以0开头)
$d = 0x1A; // 十六进制(以0x开头)
echo "a的值是:$a"; // 双引号内变量会被解析
echo 'a的值是:$a'; // 单引号内变量不会被解析
?>
(2) 浮点型(Float/Double)
<?php
$price = 99.99;
$scientific = 1.2e3; // 1.2 × 10³ = 1200
echo "价格:$price";
echo "科学计数法:$scientific";
?>
(3) 字符串(String)
<?php
$str1 = "双引号字符串"; // 可以解析变量和转义字符
$str2 = '单引号字符串'; // 不解析变量和大多数转义字符
// 字符串连接
$name = "王五";
$greeting = "你好," . $name . "!";
echo $greeting;
// 常用字符串函数
echo strlen("Hello"); // 输出5
echo strpos("Hello world", "world"); // 输出6
?>
(4) 布尔型(Boolean)
<?php
$isTrue = true;
$isFalse = false;
if ($isTrue) {
echo "这是真的";
}
?>
2. 复合类型(2种)
(1) 数组(Array)
<?php
// 索引数组
$colors = array("红", "绿", "蓝");
echo $colors[0]; // 输出"红"
// 关联数组
$person = array(
"name" => "张三",
"age" => 25,
"gender" => "男"
);
echo $person["name"]; // 输出"张三"
?>
(2) 对象(Object)
<?php
class Person {
public $name;
public $age;
public function sayHello() {
echo "你好,我是$this->name";
}
}
$p = new Person();
$p->name = "李四";
$p->age = 30;
$p->sayHello();
?>
3. 特殊类型(2种)
(1) 空值(Null)
<?php
$var = null;
if (is_null($var)) {
echo "变量是空的";
}
?>
(2) 资源(Resource)
<?php
$file = fopen("test.txt", "r"); // $file是资源类型
// 文件操作...
fclose($file);
?>
三、运算符
1. 算术运算符
<?php
$a = 10;
$b = 3;
echo $a + $b; // 13
echo $a - $b; // 7
echo $a * $b; // 30
echo $a / $b; // 3.333...
echo $a % $b; // 1 (取余)
echo $a ** $b; // 1000 (幂运算,PHP5.6+)
?>
2. 赋值运算符
<?php
$x = 10;
$x += 5; // $x = $x + 5;
$x -= 3; // $x = $x - 3;
$x *= 2; // $x = $x * 2;
$x /= 4; // $x = $x / 4;
$x %= 3; // $x = $x % 3;
?>
3. 比较运算符
<?php
$a = 5;
$b = "5";
var_dump($a == $b); // true (值相等)
var_dump($a === $b); // false (值和类型都相等)
var_dump($a != $b); // false
var_dump($a !== $b); // true
var_dump($a > $b); // false
var_dump($a < $b); // false
var_dump($a >= $b); // true
var_dump($a <= $b); // true
?>
4. 逻辑运算符
<?php
$x = true;
$y = false;
var_dump($x and $y); // false
var_dump($x or $y); // true
var_dump($x && $y); // false (和and相同,但优先级更高)
var_dump($x || $y); // true (和or相同,但优先级更高)
var_dump(!$x); // false
var_dump($x xor $y); // true (只有一个为true时返回true)
?>
5. 字符串运算符
<?php
$str1 = "Hello";
$str2 = "World";
echo $str1 . " " . $str2; // "Hello World"
$str1 .= " PHP"; // $str1 = $str1 . " PHP";
echo $str1; // "Hello PHP"
?>
四、类型检测与转换
1. 类型检测
<?php
$var = "123";
echo is_int($var); // false
echo is_string($var); // true
echo is_bool($var); // false
echo is_array($var); // false
echo is_float($var); // false
?>
2. 类型转换
<?php
// 自动转换
$sum = "10" + 5; // 结果为15
// 强制转换
$num = "123";
$intNum = (int)$num;
$floatNum = (float)$num;
$strNum = (string)$intNum;
// 使用函数转换
$intVal = intval("456");
$floatVal = floatval("78.9");
$strVal = strval(123);
?>
五、作业练习
- 创建一个包含不同类型变量的数组,并输出每个变量的值和类型
- 编写一个计算器程序,能计算两个数的加、减、乘、除、取余
- 创建一个学生信息的关联数组,包含姓名、年龄、成绩,并输出这些信息
下节课预告
- 条件语句(if/else/switch)
- 循环结构(for/while/foreach)
- 函数基础
这一切,似未曾拥有