#zephir-流程控制语句#
##前言## 先在这里感谢各位zephir开源技术提供者
ZEPHIR实现了一个简化的控制结构语句,类似的语言如C,PHP等,那么今天就和笔者一同来学习zephir的流程控制语句把!
注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术
附上:
喵了个咪的博客:w-blog.cn
zephir官网地址:http://zephir-lang.com/
github地址:https://github.com/phalcon/zephir
##if语句##
“if”语句执行并且进行验证。包裹处理结果的括号是必须有的的,一个“if”可以有一个可选的'else'条款,多'if'/'else'的构造可以链接在一起:
if false {
echo "false?";
} else {
if true {
echo "true!";
} else {
echo "neither true nor false";
}
}
“elseif”也可以:
if a > 100 {
echo "to big";
} elseif a < 0 {
echo "to small";
} elseif a == 50 {
echo "perfect!";
} else {
echo "ok";
}
括号是可选的:
if a < 0 { return -1; } else { if a > 0 { return 1; } }
##Switch语句##
Switch对表达式的值进行一个多条件判断和默认条件处理:
switch count(items) {
case 1:
case 3:
echo "odd items";
break;
case 2:
case 4:
echo "even items";
break;
default:
echo "unknown items";
}
##while语句##
“while”代表一个循环迭代只要给定条件值为true:
let counter = 5;
while counter {
let counter -= 1;
}
除了“while”,“loop”可以用来创建无限循环:
let n = 40;
loop {
let n -= 2;
if n % 5 == 0 { break; }
echo x, "\n";
}
##for语句##
“for”是一种控制结构,允许遍历数组或字符串:
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";
}
“for”的循环也可以指示在相反的顺序遍历一个数组或字符串:
let items = [1, 2, 3, 4, 5];
for value in reverse items {
echo value, "\n";
}
“for”可以用来遍历字符串变量:
string language = "zephir"; char ch;
for ch in language {
echo "[", ch ,"]";
}
在相反的顺序:
string language = "zephir"; char ch;
for ch in reverse language {
echo "[", ch ,"]";
}
一个标准的“for”,遍历一系列的整数值可以写成:
for i in range(1, 10) {
echo i, "\n";
}
为了避免警告未使用的变量可以使用匿名变量”的陈述, 通过替换占位符“_”的变量名:
// 值用了key却忽略了value
for key, _ in data {
echo key, "\n";
}
##Break语句##
“Break”结束执行当前的“while”,“for”或“loop”的语句:
for item in ["a", "b", "c", "d"] {
if item == "c" {
break; // 结束了for
}
echo item, "\n";
}
##Continue语句##
“Continue”中使用循环结构来跳过当前循环迭代和剩下的 继续执行情况评估,然后下一次迭代的开始。
let a = 5;
while a > 0 {
let a--;
if a == 3 {
continue;
}
echo a, "\n";
}
##Require语句##
在'Require'语句动态包含并指定的PHP文件。需要注意的是通过ZEPHIR包含的文件是由Zend引擎解释为正常的PHP文件。'Require'不允许包括在运行其他ZEPHIR文件。
if file_exists(path) {
require path;
}
##Let语句##
“Let”语句用于变量,属性和数组。 默认变量是不可变的,这个指令使其可变的:
let name = "Tony";
let this->name = "Tony";
let data["name"] = "Tony";
let self::_name = "Tony";
也必须使用这个指令递增/递减变量:
let number++;
let number--;
let this->number++;
let this->number--;
##总结##
今天学习了主要的一些流程判断语句以及极为重要的require语句,有了require就可以把不同的PHP问题引入进来做到类似于路由的功能,这些将到后续的实战演示中展示到,那么今天就到这里了,多谢大家的关注!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
zephir技术交流:246348908 欢迎大家的加入!
感谢zephir开发人员: