前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zephir-(11)流程控制语句

zephir-(11)流程控制语句

作者头像
喵了个咪233
发布2018-03-02 11:20:56
5770
发布2018-03-02 11:20:56
举报

#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'的构造可以链接在一起:

代码语言:javascript
复制
if false {
    echo "false?";
} else {
    if true {
        echo "true!";
    } else {
        echo "neither true nor false";
    }
}

“elseif”也可以:

代码语言:javascript
复制
if a > 100 {
    echo "to big";
} elseif a < 0 {
    echo "to small";
} elseif a == 50 {
    echo "perfect!";
} else {
    echo "ok";
}

括号是可选的:

代码语言:javascript
复制
if a < 0 { return -1; } else { if a > 0 { return 1; } }

##Switch语句##

Switch对表达式的值进行一个多条件判断和默认条件处理:

代码语言:javascript
复制
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:

代码语言:javascript
复制
let counter = 5;
while counter {
    let counter -= 1;
}

除了“while”,“loop”可以用来创建无限循环:

代码语言:javascript
复制
let n = 40;
loop {
    let n -= 2;
    if n % 5 == 0 { break; }
    echo x, "\n";
}

##for语句##

“for”是一种控制结构,允许遍历数组或字符串:

代码语言:javascript
复制
for item in ["a", "b", "c", "d"] {
    echo item, "\n";
}

在散列键可在以下方式:

代码语言:javascript
复制
let items = ["a": 1, "b": 2, "c": 3, "d": 4];

for key, value in items {
    echo key, " ", value, "\n";
}

“for”的循环也可以指示在相反的顺序遍历一个数组或字符串:

代码语言:javascript
复制
let items = [1, 2, 3, 4, 5];

for value in reverse items {
    echo value, "\n";
}

“for”可以用来遍历字符串变量:

代码语言:javascript
复制
string language = "zephir"; char ch;

for ch in language {
    echo "[", ch ,"]";
}

在相反的顺序:

代码语言:javascript
复制
string language = "zephir"; char ch;

for ch in reverse language {
    echo "[", ch ,"]";
}

一个标准的“for”,遍历一系列的整数值可以写成:

代码语言:javascript
复制
for i in range(1, 10) {
    echo i, "\n";
}

为了避免警告未使用的变量可以使用匿名变量”的陈述, 通过替换占位符“_”的变量名:

代码语言:javascript
复制
// 值用了key却忽略了value
for key, _ in data {
    echo key, "\n";
}

##Break语句##

“Break”结束执行当前的“while”,“for”或“loop”的语句:

代码语言:javascript
复制
for item in ["a", "b", "c", "d"] {
    if item == "c" {
        break; // 结束了for
    }
    echo item, "\n";
}

##Continue语句##

“Continue”中使用循环结构来跳过当前循环迭代和剩下的 继续执行情况评估,然后下一次迭代的开始。

代码语言:javascript
复制
let a = 5;
while a > 0 {
    let a--;
    if a == 3 {
        continue;
    }
    echo a, "\n";
}

##Require语句##

在'Require'语句动态包含并指定的PHP文件。需要注意的是通过ZEPHIR包含的文件是由Zend引擎解释为正常的PHP文件。'Require'不允许包括在运行其他ZEPHIR文件。

代码语言:javascript
复制
if file_exists(path) {
    require path;
}

##Let语句##

“Let”语句用于变量,属性和数组。 默认变量是不可变的,这个指令使其可变的:

代码语言:javascript
复制
let name = "Tony";           
let this->name = "Tony";     
let data["name"] = "Tony";  
let self::_name = "Tony";   

也必须使用这个指令递增/递减变量:

代码语言:javascript
复制
let number++;           
let number--;           
let this->number++;     
let this->number--;     

##总结##

今天学习了主要的一些流程判断语句以及极为重要的require语句,有了require就可以把不同的PHP问题引入进来做到类似于路由的功能,这些将到后续的实战演示中展示到,那么今天就到这里了,多谢大家的关注!

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

zephir技术交流:246348908 欢迎大家的加入!

感谢zephir开发人员:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档