php 5.2.x 不被注意的细节: 数组篇

刚看了php的教程,由于php版本的问题发现数组这边有地方可以研究
针对 php5.2.5 做了几个实验发现:

 

1、

$arr = array("a" => 1,"b" => 2,"c" => 3);
但是如果这样定义数组会报编译错误:

$arr = array("a" = 1,"b" = 2,"c" = 3);
所以定义数组的时候只能用 =>

 

2、

$arr = array("a" => 1,"b" => 2,"c" => 3);
echo $arr[0];
echo $arr[1];
打出来的是一片空白,这样才打的出来:

echo $arr["a"];
 

3、增加元素或修改元素的时候只能用 =  了,不能用 =>

$arr = array("a" => 1,"b" => 2,"c" => 3);
$arr["c"] => 6;
像这样在以前的版本中也许可以使用,但是到了 5.2.5 就会出现编译错误
增加元素或修改元素要像以下这样写:

$arr = array("a" => 1,"b" => 2,"c" => 3);
$arr["d"] = 4;
$arr["c"] = 6;
删除元素要使用 unset  

unset ($arr["c"]);
 

4、做个实验,猜猜这样打出来是什么:

$arr = array("a" => 1,2,"b" => 3,4);
$arr[] = 5;
foreach($arr as $key => $value)
{
    echo "key:$key value:$value<br>";
}
 

结果:

key:a value:1
key:0 value:2
key:b value:3
key:1 value:4
key:2 value:5

这样就很明了,只有在用户没有定义键的时候 php 才会自动使用从0开始的数字作为键

 

5、php 中的数组是有指针的,可以对数组进行向前向后操作

$arr = array("a" => 1,3,"b" => 2);
//创建完数组后默认指针指在第一个元素
echo current($arr)."<br>";
//前进一个位置
echo next($arr)."<br>";
//整理的默认原则是从小到大
sort($arr);
//整理完后数组指针又停在第一个元素
echo current($arr)."<br>";
echo next($arr)."<br>";
//后退一个位置
echo prev($arr)."<br>";
输出:

1
3
1
2
1

 

时间: 2024-10-01 14:12:42

php 5.2.x 不被注意的细节: 数组篇的相关文章

PHP开发环境配置(含加密程序)

程序|加密 看到文章的题目,不知道大家还有没有兴趣看下去."PHP开发环境配置"~~这个题目就好像在大街上随便问一个人:"你喜欢吃什么?" 一样,答案当然是多种多样的.下面就来说说我个人的看法吧,各位高手不要见笑.但是我想这篇文章对于各位初学者来说还是有一定借鉴意义的.OK.Let's begin~ 在机器上配置好了开发环境,想必各位初哥初姐手痒着要写程序了吧?但是写在那里呢? 对于刚开始学习PHP的朋友来说,首先要知道,在各类PHP开发工具中还没有一个象Micro

诊断 Java 代码:设计轻松的代码维护

设计 本月,Eric Allen 解释了在使代码更易于维护的同时,避免和控制无理由的变化怎么会是保持代码健壮性的关键.他集中讨论了诸如函数样式代码编写之类的概念,以及标记字段.方法和类的方法来处理并防止可变性.Eric 还解释了本任务中单元测试和重构的角色,并提供了协助实现重构的两个工具.在相关论坛中与作者和其他读者分享您对本文的看法.(您也可以单击本文顶部或底部的"讨论",访问该论坛.)有效调试源自良好的编程.设计易于维护的程序是程序员面临的最困难挑战之一,其部分原因在于程序通常并不

jspSmartUpload上传下载全攻略

js|攻略|上传|下载 一.安装篇 jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中.该组件有以下几个特点: 1.使用简单.在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载,方便. 2.能全程控制上传.利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取. 3.能对上传的文件在大小.类

传统应用层逻辑分库DB迁移阿里云DRDS+RDS分布式数据库

随着互联网快速发展,我们的结构化关系数据库在高并发.海量数据的情况下面临单机扩展性问题,首先是单机数据库容量瓶颈,单机数据库在业务高速增长的情况下依赖硬件升级也会到达天花板,并且使用成本变得非常高,而且扩展性的复杂性也是比较高,传统数据库扩容往往意味着服务中断,很难做到业务无感知或者少感知.     通过数据水平切换来现实分库可以帮助提升数据库整体性能.横向扩展性,切分后有效的降低了单台机器的访问负载,同时最大限度的降低了数据库服务节点宕机后的损失.      传统应用业务层逻辑或组件分库实现方

京颐CTO宋建康:如何应对系统高度分化异构的挑战,打造不间断服务的在线交易云平台

[现场视频]京颐CTO兼医疗云事业部总经理宋建康:基于医疗核心业务系统的在线交易云平台,点此进入→https://yq.aliyun.com/video/play/1171 摘要:在9月7日云栖专家"走进京颐"线下活动中,京颐CTO兼医疗云事业部总经理宋建康分享了移动互联网医疗的发展历程和所面临的挑战,以及京颐在线交易云平台的设计.挑战和应用,以及对于互联网医疗行业的未来展望.错过了线下活动的小伙伴们,不要错过本文哦~ 本文内容根据演讲专家音频材料以及PPT整理而成. 前言 移动互联网

经典网络迁移VPC最佳实践

摘要:阿里云起步于经典网络,但已经全面转向VPC.专有网络VPC以其在安全.成本和网络功能方面的优势,正受到越来越多用户的欢迎.在9月6日技术直播中,阿里云高级产品专家谭礼铨(李泉)为大家分享了经典网络迁移VPC最佳实践,本次分享介绍三种将ECS从经典网络迁移至VPC网络的途径,并阐述三种类型的迁移分别适合怎样的客户需求和场景. 直播回顾视频地址:https://yq.aliyun.com/webinar/play/287 9月21日,2017阿里云网络技术高峰论坛将独家线上直播,欢迎预约:ht

揭秘IPHONE X刷脸认证的技术奥秘

     苹果最新发布的Iphone X具有一个全新的功能叫做刷脸认证,背后的技术其实是生物密码的更新,通过人脸识别取代了传统的指纹识别,大家肯定对这种新技术非常感兴趣,下面我们通过这篇文章为大家介绍人脸识别的一些技术原理. 随着深度学习.神经网络和人工智能等技术的发展,生物识别技术逐渐成熟.所谓生物识别技术就是利用人体固有的.具有唯一性的先天生物生理特征,像人脸.指纹.掌纹等,和后天形成的行为习惯,如笔迹.键盘行为,手机操作的触屏行为,甚至握手机的姿势等.来进行身份鉴定. 从应用的角度来讲,生

win7下使用U盘安装Ubuntu Kylin完全详解教程

安装失败了好几次,看了很多篇博客,最后终于成功了,并且做了这个win7下使用U盘安装Ubuntu的教程,希望能给大家带来帮助! 详细的图文步骤如下: 部分操作步骤转自 http://blog.csdn.net/dreamthen/article/details/8765472,感谢. 1.本次使用的是64位的ubuntu Kylin桌面版,iso镜像可以自己去官网下载,大约700MB 2.  将系统拷进U盘,制成u盘启动系统. 4.将电脑划分出来一个空盘,大小20G 足矣,也可以根据个人喜好,分

HDU 4353 枚举

题意:给出n个点,为商人要购买的点,m个点为金矿的位置.问如何使够买三个点或三个以上的点围成的多边形面积与多边形内金矿的数量的比值最小. 这题很容易想到比值最小的肯定是三角形和在三角形内的点的数量想比.虽然我没想到.然后很容易想到四重循环来找最小的比值但是会超时,所以需要预处理一下,先把两组点按照x轴排序,枚举两个n点,针对于每组点组成的线段选线段正上方的m点,存入数组中.然后再进行n^3循环枚举3个n内的点,长线段上的m点数-两条短线段的m点数的绝对值就是三角形内的点数.为什么是绝对值,因为长

div布局-请问怎么让div中的div在垂直方向上居中呢?

问题描述 请问怎么让div中的div在垂直方向上居中呢? 比如:下面这段代码,如何让里面的div在垂直方向上面居中呢(不好意思,实在是没有悬赏币了) .out{ width:500px; height:500px; background:blue;}.inn{ width:200px; height:200px; background:red;} 解决方案 你的inn怎么比out还大..搞反了吧..通过margin来定位.absolute定位最好,不需要考虑父容器,只需要依据自身的宽和高度来调整