• 内建方法
    • String
    • Array
    • Char
    • Integer

    内建方法

    如前所述,Zephir提倡面向对象编程。 与静态类型相关的变量也可以作为对象处理。

    比较这两种方法:

    1. public function binaryToHex(string! s) -> string
    2. {
    3. var o = "", n; char ch;
    4. for ch in range(0, strlen(s)) {
    5. let n = sprintf("%X", ch);
    6. if strlen(n) < 2 {
    7. let o .= "0" . n;
    8. } else {
    9. let o .= n;
    10. }
    11. }
    12. return o;
    13. }

    1. public function binaryToHex(string! s) -> string
    2. {
    3. var o = "", n; char ch;
    4. for ch in range(0, s->length()) {
    5. let n = ch->toHex();
    6. if n->length() < 2 {
    7. let o .= "0" . n;
    8. } else {
    9. let o .= n;
    10. }
    11. }
    12. return o;
    13. }

    它们都有相同的功能,但是第二个使用的是面向对象编程。 对静态类型变量调用方法对性能没有任何影响,因为Zephir在内部将代码从面向对象版本转换为过程版本。

    String

    下面的字符串内置方法可用:

    OO实际过程说明
    s->format()sprintf(s, "%s", x)返回格式化的字符串
    s->index("foo")strpos(s, "foo")查找字符串中第一个出现的子字符串的位置
    s->length()strlen(s)获取字符串长度
    s->lower()strtolower(s)使字符串小写
    s->lowerfirst()lcfirst(s)使字符串的第一个字符小写
    s->md5()md5(s)计算字符串的 md5 哈希
    s->sha1()sha1(s)计算字符串的 sha1 哈希
    s->trim()trim(s)删除字符串的开头和结尾的空格 (或其他字符)
    s->trimleft()ltrim(s)从字符串开头的条带空白 (或其他字符)
    s->trimright()rtrim(s)删除字符串末端的空白字符(或者其他字符)
    s->upper()strtoupper(s)使字符串大写
    s->upperfirst()ucfirst(s)使字符串的第一个字符大写

    Array

    可用的数组内置方法如下:

    OO实际过程说明
    a->combine(b)array_combine(a, b)通过使用一个数组表示键, 为其值创建另一个数组
    a->diff()array_diff(a)计算数组的差异
    a->flip()array_flip(a)将数组中的所有键与其关联的值交换
    a->hasKey()array_key_exists(a)检查数组中是否存在给定的键或索引
    a->intersect(b)array_intersect(a, b)计算数组的交集
    a->join(" ")join(" ", a)使用字符串联接数组元素
    a->keys()array_keys(a)返回数组的所有键或键的子集
    a->merge(b)array_merge(a, b)合并一个或多个数组
    a->pad()array_pad(a, b)以指定长度将一个值填充进数组
    a->rev()array_reverse(a)返回具有相反顺序的元素的数组
    a->reversed()array_reverse(a)返回具有相反顺序的元素的数组
    a->split()array_chunk(a)将数组拆分为多个块
    a->values()array_values(a)返回数组的所有值
    a->walk()array_walk(a)使用用户自定义函数对数组中的每个元素做回调处理

    Char

    提供了以下字符内置方法:

    OO实际过程
    ch->toHex()sprintf("%X", ch)

    Integer

    以下是可用的整数内置方法:

    OO实际过程
    i->abs()abs(i)