PHP-Manual的学习----【语言参考】----【类型】-----【array数组】

1.Array 数组  
PHP 中的 数组 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。由于数组元素的值也可以是另一个数组,树形结构和多维数组也是允许的。
解释这些结构超出了本手册的范围,但对于每种结构至少会提供一个例子。要得到这些结构的更多信息,建议参考有关此广阔主题的其它著作。
2.语法:
定义数组 array()  
可以用 array()  语言结构来新建一个数组。它接受任意数量用逗号分隔的 键(key) => 值(value) 对。
array(  key =>  value
     , ...
     )
// 键(key)可是是一个整数  integer  或字符串  string
// 值(value)可以是任意类型的值
最后一个数组单元之后的逗号可以省略。通常用于单行数组定义中,例如常用 array(1, 2) 而不是 array(1, 2, )。对多行数组定义通常保留最后一个逗号,这样要添加一个新单元时更方便。
自 5.4 起可以使用短数组定义语法,用 [] 替代 array()。
key 可以是 integer  或者 string 。value 可以是任意类型。
3.此外 key 会有如下的强制转换:
1.  包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。  
2.  浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8。  
3.  布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0。  
4. Null  会被转换为空字符串,即键名 null 实际会被储存为 ""。  
5.  数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type。  
如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。
4.PHP 数组可以同时含有 integer  和 string  类型的键名,因为 PHP 实际并不区分索引数组和关联数组。
5.key 为可选项。如果未指定,PHP 将自动使用之前用过的最大 integer  键名加上 1 作为新的键名。
6.数组中可以同时套数组。
7.用方括号的语法新建/修改
可以通过明示地设定其中的值来修改一个已有数组。
这是通过在方括号内指定键名来给数组赋值实现的。也可以省略键名,在这种情况下给变量名加上一对空的方括号([])。
$arr[key] = value;
$arr[] = value;
// key 可以是  integer  或  string
// value 可以是任意类型的值
如果 $arr  还不存在,将会新建一个,这也是另一种新建数组的方法。不过并不鼓励这样做,因为如果 $arr  已经包含有值(例如来自请求变量的 string )则此值会保留而 [] 实际上代表着字符串访问运算符。初始化变量的最好方式是直接给其赋值。。
要修改某个值,通过其键名给该单元赋一个新值。要删除某键值对,对其调用 unset()  函数。
8.foreach 控制结构是专门用于数组的。它提供了一个简单的方法来遍历数组。
9.为什么 $foo[bar] 错了?
应该始终在用字符串表示的数组索引上加上引号。例如用 $foo[‘bar‘] 而不是 $foo[bar]。但是为什么呢?可能在老的脚本中见过如下语法:
10.

时间: 2024-11-05 19:41:09

PHP-Manual的学习----【语言参考】----【类型】-----【array数组】的相关文章

PHP手册-语言参考-类型

PHP 支持8中原始数据类型:boolean | integer | float | string | array | object | resource | NULL 1. 4种标量数据类型 1.1 boolean 布尔类型 1.2 integer 整型 1.3 float | double 浮点型 1.4 string 字符串 2. 2种符合数据类型 2.1 array 数组 2.2 object 对象 3. 2种特殊类型 3.1 resource 资源 3.2 NULL 无类型 伪类型:m

PHP手册-语言参考-类型-Boolean 布尔类型

1. boolean 表达了真值,可以为 true 或 false.两个都不区分大小写. 2. 通常运算符所返回的 boolean 值结果会被传递给控制流程. 3. 当转换为 boolean 时,以下值被认为时 false: 3.1 布尔值 false 本身 3.2 整型值 0 3.3 浮点型值 0.0 3.4 空字符串,以及字符串“0” 3.5 不包括任何元素的数组 3.6 不包括任何成员变量的对象(仅 PHP 4.0适用) 3.7 特殊类型 NULL(包括尚未赋值的变量) 3.8 从空标记生

PHP手册-语言参考-类型-Integer 整型

1. 整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +). 2. 要使用八进制表达,数字前必须加上0(零).要使用十六进制表达,数字前必须加上0x.要使用二进制表达,数字前必须加上0b.

PHP手册-语言参考-类型-String 字符串

1. 一个字符串 String 就是由一系列的字符组成,其中每个字符等同于一个字节. 2. 一个字符串可以用 4 种方式表达: 2.1 单引号 —— 需要表达一个单引号自身,需在它的前面加个反斜线(\)来转义. —— 在单引号字符串中的变量和特殊字符的转义序列不会被替换. 2.2 双引号 —— 在双引号中,PHP 将对一些特殊的字符进行解析. —— 用双引号定义的字符串最重要的特征是变量会被解析. 2.3 heredoc 语法结构:<<< —— 在该运算符之后要提供一个标识符,然后换行.

PHP手册-语言参考-类型-Float 浮点型

1. 浮点型:浮点数 float | 双精度数 double | 实数 real. 2. 要测试浮点数是否相等,要使用一个仅比该数值大一丁点的最小误差值(机器极小值 epsilon | 最小单元取整数). 3. NaN 代表着任何不同值,用 is_nan() 来检查.

swift 学习笔记:值类型and参考类型!

helloworld篇章 值: swift中类型分为两种:第一种是值类型,该类型的每个实例持有数据的副本,并且该副本对于每个实例来说是独一无二的一份,比如结构体(struct).枚举(enum).元组(tuple)都是值类型.第二种是参照类型,该类型的实例共享数据唯一的一份副本(在native层面说的话,就是该类型的每个实例都指向内存中的同一个地址),比如类(class)就是参照类型 如果你想创建一个新类型,那么你应该选择值类型还是参照类型呢?当你使用Cocoa框架时,很多API都是NSObje

学习Golang语言(6):类型--切片

学习Golang语言(1): Hello World 学习Golang语言(2): 变量 学习Golang语言(3):类型--布尔型和数值类型 学习Golang语言(4):类型--字符串 学习Golang语言(5):类型--数组 学习Golang语言(6):类型--切片 在很多应用场景中,数组不能够满足我们的需求.在初始定义数组时,我们并不知道数组所需的长度.因此,我们需要一个大小可以动态变化的数组(动态数组) 在Go语言中,这种"动态数组"成为slice(切片). 但是实际上slic

PHP-Manual的学习----【语言参考】

2017年6月28日11:29:31 语言参考    基本语法    类型    变量    常量1.当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,这告诉 PHP 开始和停止解析二者之间的代码.此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略. 2.如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记.这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP

Docs-.NET-C#-指南-语言参考-关键字-值类型:可以 null 的值类型

ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:可以 null 的值类型 1.返回顶部 1. Nullable value types (C# reference) 2019/11/04 7 分钟阅读时长 A nullable value type T? represents all values of its underlying value type T and an additional null value. For example, you can assig