欢迎来到PHP数据类型马戏团!在这里,每个数据类型都是独特的表演者,而PHP的类型系统则是那个总能变出惊喜的魔术师帽子~
2.2.1 八大金刚:PHP的数据类型阵容
1. 整型(Integer) - 数学课代表
$age = 30; // 正整型
$balance = -1500; // 负整型
$hex = 0x1A; // 十六进制 (26)
$binary = 0b1101; // 二进制 (13)
整型就像数学课上的好学生,永远精确无误。但要注意它们的极限(PHP_INT_MAX),就像课代表也会被难题难倒一样。
2. 浮点型(Float/Double) - 数学课代表的表亲
$pi = 3.1415926;
$scientific = 1.2e3; // 1200
$negativeFloat = -1.23;
浮点数有点"浮夸",有时候会有些小误差(比如0.1+0.2≠0.3),这不是bug,这是它们的表演特色!
3. 字符串(String) - 话痨担当
$singleQuoted = 'I\'m a string'; // 单引号
$doubleQuoted = "I can do variables: $age"; // 双引号
$heredoc = <<<EOD
我可以跨越多行
就像这样!
EOD;
字符串是舞台上的主持人,单引号比较严肃(不解析变量),双引号比较活泼(会解析变量和转义字符)。
4. 布尔型(Boolean) - 是非判官
$isPHPFun = true;
$isLearningEasy = false;
布尔值就像严格的裁判,只认true和false两个值。但PHP会自动类型转换,有时候0、"0"、""、null都会变成false。
5. 数组(Array) - 收纳达人
$simpleArray = array(1, 2, 3);
$shortArray = [1, 2, 3]; // PHP5.4+ 简洁写法
$assocArray = ["name" => "Alice", "age" => 25];
数组是PHP里的瑞士军刀,既能当列表也能当字典。它们就像乐高盒子,可以装下各种类型的积木。
6. 对象(Object) - 面向对象明星
class Person {
public $name = "Anonymous";
}
$person = new Person();
对象是面向对象编程的主角,它们带着属性和方法闪亮登场!我们会在后面章节专门为它们开演唱会。
7. NULL - 佛系存在
$nothingHere = null;
$uninitialized; // 默认也是null
NULL表示"无",是变量界的禅宗大师。它不同于空字符串或0,它是真正的"无"。
8. 资源(Resource) - 幕后工作者
$fileHandle = fopen("data.txt", "r");
资源类型很低调,它们代表外部资源(如数据库连接、文件句柄)。就像舞台后的工作人员,你看不见他们,但表演离不开他们。
2.2.2 PHP的"类型魔术"
PHP是个灵活的魔术师,它会自动进行类型转换:
自动类型转换
$magic = "10" + 5; // 结果是15,字符串转数字
$moreMagic = "10 apples" + 5; // 也是15,PHP会尽力而为
严格比较(===) vs 松散比较(==)
0 == "0"; // true
0 === "0"; // false
false == ""; // true
false === ""; // false
===检查值和类型,就像严格的安检;==只检查值,像好说话的保安大叔。
2.2.3 类型相关函数
类型检测
is_int($var); // 检查整型
is_float($var); // 检查浮点型
is_string($var); // 检查字符串
is_bool($var); // 检查布尔型
is_array($var); // 检查数组
is_object($var); // 检查对象
is_null($var); // 检查null
类型转换
$number = (int)"123"; // 强制转换为整型
$string = (string)123; // 强制转换为字符串
$bool = (bool)1; // 强制转换为布尔型
2.2.4 练习:类型马戏团
$trick1 = "5" * "6"; // 结果是?
$trick2 = "PHP" + 7; // 结果是?
$trick3 = [] + [1, 2, 3]; // 结果是?
echo gettype(true); // 输出什么?
echo is_numeric("123.45"); // 输出什么?
答案:
- $trick1 = 30 (字符串自动转数字)
- $trick2 = 7 ("PHP"转数字为0)
- $trick3 = [1, 2, 3] (数组相加的特殊规则)
- "boolean"
- true ("123.45"是数字字符串)
记住:PHP的类型系统就像个和善的魔术师,它会尽力理解你的意图,但有时候也会变出意想不到的结果。了解数据类型就像了解魔术的秘密,能让你成为更优秀的PHP开发者!