文档章节

zephir-(10)内置函数

喵了_个咪
 喵了_个咪
发布于 2016/03/10 10:20
字数 1159
阅读 57
收藏 1

#zephir-内置函数#

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

嗨!大家好呀,今天要和大家一同学习zephir的内置函数,学过PHP的同学都知道,PHP的函数非常强大,当然这也是我们喜欢PHP的一个方面,但是如果想想这些函数都要你自己去实现呢,不仅很难而且实现不好对效率影响很大,当然zephir不会让大家来自己实现这些基础函数,接下来我们开始学习今天的知识把.

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

附上:

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

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

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

##内置的方法##

如前所述,Zephir促进面向对象编程、变量与静态类型也可以作为对象处理。

比较这两个方法:

public function binaryToHex(string! s) -> string
{
    var o = "", n; char ch;

    for ch in range(0, strlen(s)) {
        let n = sprintf("%X", ch);
        if strlen(n) < 2 {
            let o .= "0" . n;
        } else {
            let o .= n;
        }
    }
    return o;
}

和:

public function binaryToHex(string! s) -> string
{
    var o = "", n; char ch;

    for ch in range(0, s->length()) {
        let n = ch->toHex();
        if n->length() < 2 {
            let o .= "0" . n;
        } else {
            let o .= n;
        }
    }
    return o;
}

他们都有相同的功能,但第二个使用面向对象编程。

调用方法在静态类型变量中对性能没有任何影响,因为Zephir内部转换程序的面向对象版本的代码版本。

##字符串##

以下字符串内置方法可用:

面向对象操作       函数                   描述

s->length()      strlen(s)              获取字符串长度
s->trim()        trim(s)                去除字符串的开头和末尾空格(或其它字符)
s->trimleft()    ltrim(s)               从字符串的开头去除空格(或其它字符)
s->trimright()   rtrim(s)               从一个字符串的末尾去除空格(或其它字符)
s->index(“foo”)  strpos(s, “foo”)       查找字符串的第一个出现的字符串中的位置
s->lower()       strtolower(s)          转换一个字符串变成小写
s->upper()       strtoupper(s)          转换一个字符串变成大写
s->lowerfirst()  lcfirst(s)             使一个字符串的第一个字符变成小写
s->upperfirst()  ucfirst(s)             使一个字符串的第一个字符变成大写
s->format()      sprintf(s, “%s”, x)    返回一个格式化的字符串
s->md5()         md5(s)                 计算一个字符串的MD5散列
s->sha1()        sha1(s)                计算一个字符串的SHA1哈希

##数组##

以下数组内置方法可用:

面向对象操作       函数                   描述

a->join(” ”)     join(” ”, a)           加入一个字符串数组元素
a->rev()         array_reverse(a)       返回与以相反的顺序元素的数组
a->reversed()    array_reverse(a)       返回与以相反的顺序元素的数组
a->diff()        array_diff(a)          计算数组的差别
a->flip()        array_flip(a)          交换数组中的所有键与它们相关的值
a->walk()        array_walk(a)          执行功能适用于每一个成员的一个数组
a->hasKey()      array_key_exists(a)    检查给定的键或索引数组中存在
a->keys()        array_keys(a)          返回所有键或数组的键子集
a->values()      array_values(a)        返回数组中所有的值
a->split()       array_chunk(a)         拆分数组块
a->combine(b)    array_combine(a, b)    通过使用密钥一个阵列,另一个是它的值创建一个数组
a->intersect(b)  array_intersect(a, b)  计算数组的交集
a->merge(b)      array_merge(a, b)      合并一个或一个以上的数组
a->pad()         array_pad(a, b)        垫数组与值指定的长度

##字符##

字符串和整数官方并没有给出很好解释,在日后日常使用中遇到的具体函数会进行补充.

ch->toHex()	sprintf(“%X”, ch)	

##整数##

i->abs()	abs(i)	

##总结##

大家可以看到zephir的内置函数和php内置的相比毫不逊色,也能很大程度的提高我们的开发效率,那么今天就到这里,多谢大家的支持!

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

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

感谢zephir开发人员:

© 著作权归作者所有

共有 人打赏支持
喵了_个咪
粉丝 332
博文 155
码字总数 204044
作品 4
杨浦
技术主管
私信 提问
zephir-(9)类和对象2

先在这里感谢各位zephir开源技术提供者 zephir全面使用对象编程,这就是为什么拓展的使用方式只能是方法和类,你也将看到,大部分的时间,运行时错误引发异常,而不是致命错误或警告。今天讲一...

喵了_个咪
2016/03/08
46
0
zephir 安装 -- 类php语言风格的php扩展开发工具

原文链接:http://www.cleey.com/blog/single/id/809.html 首先简单介绍下zephir 这个工具 Zephir提供了一种类似php的高级语言语法的方式,来自动生成扩展的c语言代码,使编写php扩展变得非常...

Cleey
2016/01/08
391
0
Z4P 集成开发环境--Z4PIDE

Z4PIDE Z4P是zephir for php的简写。采用QT5.5开发,要求最低系统版本:windows7 为什么开发Z4PIDE 大家都有这样的经历,每次重装系统很多环境都需要重新配置,而且由于PHP扩展应用许多工具,...

纵使有花兼明月何堪无酒亦无人
2016/02/19
887
2
[Zephir开发实践]用Zephir编写PHP扩展实践

场景描述 首先,还是强烈推荐一下Phalcon这个框架。 由于对这个框架很感兴趣,所以看了其官方文档,并在先前用PHP根据其思想写了两个Phalcon核心类,见链接: #年前福利#Phalcon框架部分核心...

暗夜在火星
2014/06/26
0
0
zephir-(12)php函数和异常处理

先在这里感谢各位zephir开源技术提供者 经过了一个多月的学习,zephir的文档译文和基础讲解也将近尾声了,后面的内容最为重要也希望和大家一同更好的学习交流,本节的内容只要是讲解zephir是怎么...

喵了_个咪
2016/03/12
68
0

没有更多内容

加载失败,请刷新页面

加载更多

取变量的地址赋值给另一个变量,C通过,C++编译出错

取变量的地址赋值给另一个变量,C通过。正常运行,C++编译出错。 代码如下: #include <stdio.h>int main(int argc, char *argv[]){int x = 3;int *p = &x;int y = p;/*c ...

SamXIAO
45分钟前
1
0
利用隐写术实施攻击

尽管隐写术是一种低频攻击途径,但网络犯罪分子已经开始利用它结合社交媒体的普遍性和快速传播性来传递恶意有效负载。 低调但有效的隐写技术虽然是旧把戏,但将代码隐藏在看似正常的图像中,...

Linux就该这么学
45分钟前
2
0
YII2的乐观锁和悲观锁

乐观锁与悲观锁¶ Web应用往往面临多用户环境,这种情况下的并发写入控制, 几乎成为每个开发人员都必须掌握的一项技能。 在并发环境下,有可能会出现脏读(Dirty Read)、不可重复读(Unrep...

echojson
52分钟前
2
0
UCOS线程切换原理

黑客画家
57分钟前
3
0
最牛Java架构师进阶路线(年薪80W)

1、源码分析专题 详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。 帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。知其然,并知其...

别打我会飞
58分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部