zephir-(7)数组

zephir-数组

前言

先在这里感谢各位zephir开源技术提供者

在java和c++中几乎所有的操作都是正对于类开展的,但是在php中你们常用的处理类型是什么,当然是数组,在Zephir中提供了一种使用PHP数组的方法,那么今天就和笔者一起来学习zephir的数组相关的知识

注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术

附上:

喵了个咪的博客:w-blog.cn

zephir官网地址:http://zephir-lang.com/

github地址:https://github.com/phalcon/zephir

1. 数组

1.1 声明数组变量

数组变量可以使用关键字声明“var”或“array”:

var a = []; // 数组变量,其类型可以改变
array b = []; // 数组变量,类型不能改变

1.2 创建数组

创建一个数组将它们的元素包含在方括号:

//创建一个空数组
let elements = [];

//创建一个数组元素
let elements = [1, 3, 4];

//创建一个数组元素的类型不同
let elements = ["first", 2, true];

//一个多维数组
let elements = [[0, 1], [4, 5], [2, 3]];

它和PHP一样支持指定key值:

//用字符串为key创建一个数组
let elements = ["foo": "bar", "bar": "foo"];

//用数字为key创建一个数组
let elements = [4: "bar", 8: "foo"];

//创建一个混合key的数组
let elements = [4: "bar", "foo": 8];

1.3 修改数组

和PHP数组更新的方式相同,使用方括号:

//通过字符串key更新数组
let elements["foo"] = "bar";

//通过数字key更新数组
let elements[0] = "bar";

//更新一个多维数组
let elements[0]["foo"] = "bar";
let elements["foo"][0] = "bar";

1.4 添加元素

数组的元素可以向后增加如下:

//添加一个元素的数组
let elements[] = "bar";

1.5 获取元素

可以读取数组元素如下:

//获得elements中key为foo的值
let foo = elements["foo"];

//获得elements中key为0的值
let foo = elements[0];

2. 总结

本节简单的了解了一下zephir的数组操作,其实和PHP中的操作并无太大区别,下一节将讲解zephir中至关重要的class的操作,多谢大家的支持!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

时间: 2024-08-08 00:41:33

zephir-(7)数组的相关文章

python对数组进行反转的方法

  本文实例讲述了python对数组进行反转的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 arr = [1,2,3] arr.reverse() print(arr) 输出: [3,2,1] 希望本文所述对大家的Python程序设计有所帮助.

php对关联数组循环遍历的实现方法

 这篇文章主要介绍了php对关联数组循环遍历的实现方法,涉及php操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php对关联数组循环遍历的实现方法.分享给大家供大家参考.具体分析如下: php对于类似 ? 1 $age = array("zhangshan"=>14,"lisi"=>15,"sharejs"=>16); 这样的数组可以通过foreach的方法进行遍历,下面是详细的代码: ? 1

c-关于C字符串数组格式化输出的一些小问题

问题描述 关于C字符串数组格式化输出的一些小问题 尝试写了一个输入输出文件和小程序,因为出问题的就只有这两行代码,所以没有把其他代码贴上来 最初代码是这样的 head[][5] char head[][5] = { "id", "name", "age", "grade" }; fprintf ( input_file, "%st%st%st%sn", head[0], head[1], head[2],

java se-使用泛型打印输出任意类型的数组,为什么调用时有错误?

问题描述 使用泛型打印输出任意类型的数组,为什么调用时有错误? import java.util.Arrays; public class FanXing { public static void printMatrix(T[][] matrix){ for(int i=0;i<matrix.length;i++){ System.out.println(Arrays.toString(matrix[i])); } } public static void main(String[] args)

[数据结构] 数组与链表的优缺点和区别

概述 数组 是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素.但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中.同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素.如果应用需要快速访问数据,很少插入和删除元素,就应该用数组. 链表 中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起,每个结点包括两个部分:一个是存储 数据元素 的 数据域,另一个是存储下一个结点地址的

指向多维数组的指针变量

问题描述 指向多维数组的指针变量 #include int main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; for(p=a[0];p<a[0]+12;p++) { if((p-a[0])%4==0) printf(" "); printf("%4d",*p); } } 把for(p=a[0];p<a[0]+12;p++)改成for(p=a[0];p<a+3;p++)为什么是正确的

指针-c语言中字符数组初始化问题

问题描述 c语言中字符数组初始化问题 字符数组初始化1: char str[]=""123"";//不报错2: char str[4]; str=""123"";//不能将const char[4] to char[4]字符指针初始化1: char *str=""123"";//不报错2: char *str; str=""123"";//不报错求

各位大神,传递图片问题,学长说是数组越界,不知道怎么解决

问题描述 各位大神,传递图片问题,学长说是数组越界,不知道怎么解决 图片传递代码图片接收代码 解决方案 不是内存溢出,而是有变量为null 解决方案二: 我觉得你的学长判断是错误的,因为错误消息已经写了:NullPointerException,这个异常消息的含义就是说有空对象调用了方法.所以不会是内存溢出(不完全排除,但可能性很小),而你所指出的那行代码上有一个空对象调用了方法. 我看过你的代码,你箭头所指向的代码一共有4个对象调用了方法,其中intent对象已经看到了你new的代码,所以它不

pb代码解答-PB 如何截取字符串分别放入数组中

问题描述 PB 如何截取字符串分别放入数组中 "三厂,二厂,一厂" 我的里面有三个内容我想要取成 软件分厂 二厂 一厂 将这三个值放进数组 求大神解答 解决方案 string str =substring(字符串,开始位置,截取长度); 解决方案二: 采用以下函数 global type gf_split_parm from function_object end type forward prototypes global function integer gf_split_parm