PHP基础教程(20)PHP数据类型之复合数据类型:PHP复合类型:数组与对象的“塑料兄弟情”

一、开场白:PHP世界的“收纳狂”和“规矩怪”

刚学PHP那会儿,你肯定被它的松散类型惯坏了——变量不用声明类型,随手$a = 123; $b = "你好";简直自由得像在逛菜市场。但当你开始写正经项目时,光靠散装变量肯定不行,得把数据“打包”。这时候,PHP的复合数据类型就登场了:数组(Array)对象(Object)

这俩兄弟性格截然不同:

  • 数组像你宿舍里那个啥都往床上扔的室友,袜子、书本、零食混作一团,但找起来居然还能摸到;
  • 对象则像实验室穿白大褂的学长,每支试管必须贴标签放固定位置,流程严格却高效。

下面咱们就掰开揉碎,看看这俩到底怎么用,以及为啥你经常在别人的代码里看到它们“互相演”。


二、数组:PHP的灵魂缝合怪

1. 数组是啥?一个“万能钥匙抽屉”

PHP的数组本质上是个有序映射(ordered map),翻译成人话就是“键值对集合”。但它牛在:

  • 键可以是整数或字符串;
  • 值可以是任意类型(字符串、数字、甚至另一个数组);
  • 不需要预先定义长度,随时增删。

这就好比你的钥匙抽屉:有的钥匙挂标签(字符串键),有的直接按顺序扔(整数键),还能在抽屉里再放个小抽屉(嵌套数组)。

2. 数组的两种写法:简单粗暴 vs 优雅清晰

早期风格(现在也常用):

$student = array("张三", 18, "男"); // 索引数组,自动分配数字键 0,1,2
$score = array("语文" => 90, "数学" => 85); // 关联数组,自定义字符串键

短数组语法(PHP 5.4后推荐):

$student = ["张三", 18, "男"];
$score = ["语文" => 90, "数学" => 85];

短写法更简洁,而且方括号在JSON时代看着亲切,建议无脑用这个。

3. 数组操作:增删改查“一条龙”

// 1. 查:根据键取值
echo $score["语文"]; // 输出 90

// 2. 增:直接赋值新键
$score["英语"] = 88; // 自动增加一个键值对

// 3. 删:unset 掉某个键
unset($score["数学"]); // 数学成绩消失了,但键不会重新排列(注意!)

// 4. 遍历:foreach 是亲爹
foreach($score as $subject => $point) {
    echo "科目:$subject,分数:$point\n";
}

坑点提醒unset删除数组元素后,数字索引不会自动重排!比如:

$arr = [10, 20, 30];
unset($arr[1]);
print_r($arr); // 输出 [0=>10, 2=>30],中间缺了 1</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值