php - array_shift 和 print_r 在 PHP 中表现怪异
问题描述
我想测试array_shift
一个简单的例子:
$a = ['a', 'b', 'c', 'd'];
$rem = array_shift($a);
print_r($rem);
只返回 me: a
,而不是数组:['b', 'c', 'd']
。
php.net文档array_shift
说明如下:
array_shift() 将数组的第一个值移开并返回,将数组缩短一个元素并将所有内容向下移动。所有数字数组键都将被修改为从零开始计数,而文字键不会受到影响。
此函数应该删除第一个元素并返回所有其余的元素并重新排序。
现在,我按原样从文档站点复制了示例(尝试同时使用[]
和array()
):
$stack = ["orange", "banana", "apple", "raspberry"];
$fruit = array_shift($stack);
print_r($stack);
现在这按预期返回:
Array
(
[0] => banana
[1] => apple
[2] => raspberry
)
我不明白这里刚刚发生了什么或我做错了什么。
我的示例仅在数组中的变量名称和元素方面有所不同。
而且我几乎不相信这个问题是因为我使用了单引号'
。
另外,这里有一个关于 Sandbox 的演示。
解决方案
array_shift()
是一个独立的函数 - 你不需要将它分配给一个值,它会自动从给定的变量中取消设置它:
<?php
$a = ['a', 'b', 'c', 'd'];
array_shift($a);
print_r($a);
推荐阅读
- node.js - wsl2 nodejs容器无法将IP地址反转为其主机名
- jssor - Jssor 滑块总是从 Chrome 中的服务器重新加载图像
- reactjs - 反应钩子:'无法读取未定义的属性'推送''
- react-native - 当我安装抽屉导航时如何解决这个 react-native 错误
- kubernetes-helm - Helm 模板 - 如果数组中至少存在一个,则创建资源
- python - 如何在使用 minmaxscaler 时保持数据帧的索引?
- html - CSS 重叠阴影
- python - 遍历字典,将字典键放在数据框中的单独列中
- c# - GridView 复选框在编辑模式下消失
- postgresql - PostgreSQL 授予对表的访问权限