内容简介:上一篇 《基本语法Zephir 中,每个文件都必须有且只有一个类,每个类都必须有一个命名空间,目录结构必须与所使用的类和命名空间的名称相匹配,这一点和 PSR4 的约定一致,但是它是强制的。空间名和类名首字母大写,文件名全部小写。
上一篇 《 Zephir 简介 》 简单介绍了环境搭建,编写了一个的简单示例。这一篇继续介绍 Zephir 基础。
基本语法
Zephir 中,每个文件都必须有且只有一个类,每个类都必须有一个命名空间,目录结构必须与所使用的类和命名空间的名称相匹配,这一点和 PSR4 的约定一致,但是它是强制的。空间名和类名首字母大写,文件名全部小写。
变量
Zephir 支持动态类型和静态类型。变量作为函数返回值时,必须声明为动态类型。
动态变量与 PHP 中的变量基本完全相同,支持在使用时改变类型。
与 PHP 不一样,变量名不需要带$符号,所有变量在使用前都需要先定义,动态类型通过 var 关键字声明。
var a = 10,b,c; let b = 20; let c = a + b;
与 PHP 不一样,字符串文字只能使用双引号指定,不能用单引号,也不支持变量解析,比如这样是不支持的。
var a = "变量解析{$test}"
静态变量
静态类型一旦被声明,就不能更改。支持如下类型
给静态类型变量赋值,会先尝试自动转换,转换失败抛出异常
boolean a; let a = 0; // a = false let a = "string"; // 抛出异常
运算符
Zephir 的运算符与 PHP 基本一致。比较运算符在运算时考虑变量类型,如果是动态变量与 PHP 一致。不支持太空船操作符、空合并运算符。
特殊运算符 - Fetch
PHP
if (isset($myArray[$key])) {
$value = $myArray[$key];
echo $value;
}
Zephir
if fetch value, myArray[key] {
echo value;
}
控制结构
Zephir 提供了 if/switch/while/loop/for 几种语句,前三种与 PHP 基本一致。Zephir 控制语句中括号是非必选的。
loop 可以用来创建无限循环,相当于 while true
let n = 40;
loop {
let n -= 2;
if n % 5 == 0 { break; }
echo x, "\n";
}
for 和 PHP 一样支持索引 value 和 key => value
for item in ["a", "b", "c", "d"] {
echo item, "\n";
}
let items = ["a": 1, "b": 2, "c": 3, "d": 4];
for key, value in items {
echo key, " ", value, "\n";
}
还非常友好的提供了反方向遍历
let items = [1, 2, 3, 4, 5];
for value in reverse items {
echo value, "\n";
}
与 python 等语言一样,遍历一系列整数值,可以这么写:
for i in range(1, 10) {
echo i, "\n";
}
异常处理
异常处理与 PHP 类似,在try 语句中抛出异常,在 catch 中捕获。
var e;
try {
throw new \Exception("This is an exception");
} catch \Exception, e {
echo e->getMessage();
}
与 PHP 不一致,Zephir try 语句可以没有 catch,表示忽略所有异常。
即,这是合法的
try {
throw new \Exception("This is an exception");
}
捕获多个异常也非常方便
var e;
try {
throw new \Exception("This is an exception");
} catch \RuntimeException|\Exception, e {
echo e->getMessage();
}
附件1
官方文档以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- [译]AppExtension编程指南:扩展基础3
- PHP的Pcntl多进程扩展基础使用
- 对象的扩展 —— ES6基础总结(五)
- Java并发编程(02):线程核心机制,基础概念扩展
- 又一篇 iOS Extension 入门(1/3) — 基础 & 分享扩展
- Google开源ClusterFuzz,可扩展的模糊测试基础架构
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Design Patterns
Elisabeth Freeman、Eric Freeman、Bert Bates、Kathy Sierra、Elisabeth Robson / O'Reilly Media / 2004-11-1 / USD 49.99
You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire),......一起来看看 《Head First Design Patterns》 这本书的介绍吧!