3.zephir类型

动态类型

动态变量类型说到底就和php里那样,一个变量可以任意的存放不同类型的值,在zephir中必须通过关键字'var'来声明动态类型的变量:


var a, b, c;//声明3个变量

// 初始化变量
let a = "hello", b = false;

// 改变变量的值
let a = 10, b = "140";

// 用他们进行运算
let c = a + b;



就像PHP那样去理解它们。


可以有8种具体类型的变量:

类型 表述
boolean 布尔值. 可以是 ‘true’ or ‘false’.
integer 整型
float/double 浮点型
string 字符串是一系列的字符每个字符就是一个字节
array 数组是一个有序的映射,每一个映射就是一个key=>value
object 对象是一种抽象 就像 PHP里那样
resource 资源,一个资源保持对外部资源的引用
null 空,表示什么都没有
更多的信息可以参考php手册:http://www.php.net/manual/zh/language.types.php 

重点说几个:

默认的int或者long都是有正负的,如果你需要存储一个很大的数,可以用unsigned long或float:


unsigned long my_number = 2147483648;



数组:


数组就跟php基本一样,只是语法上有细微的差别,看代码:


//数组赋值必须用方括号,这点跟js一样,在php5.5以上貌似也支持
let myArray = [1, 2, 3];

//关联数组必须用冒号,而不是php中的=>,这有点像json,只是用的是方括号
let myHash = ["first": 1, "second": 2, "third": 3];



只有数字和字符串能被作为键值,这个还是参考php去吧。


对象:

zephir允许操作php对象,直接看代码吧:


let myObject = new stdClass(),
    myObject->someProperty = "my value";




静态类型

静态类型一旦声明,类型将不可更改,支持的类型主要参考C语言,这里不再赘述。声明方式如:


int a;
uint a1;//无符号,ulong,uchar类同
long b;
char c;
string d;
......






你可能感兴趣的:(3.zephir类型)