#zephir-內置函數#php
##前言## 先在這裏感謝各位zephir開源技術提供者git
嗨!你們好呀,今天要和你們一同窗習zephir的內置函數,學過PHP的同窗都知道,PHP的函數很是強大,固然這也是咱們喜歡PHP的一個方面,可是若是想一想這些函數都要你本身去實現呢,不只很難並且實現很差對效率影響很大,固然zephir不會讓你們來本身實現這些基礎函數,接下來咱們開始學習今天的知識把.github
注:筆者水平有限,說的不正確的地方但願你們多多指正,一同交流技術編程
附上:數組
喵了個咪的博客:w-blog.cn函數
zephir官網地址:http://zephir-lang.com/性能
github地址:https://github.com/phalcon/zephir學習
##內置的方法##code
如前所述,Zephir促進面向對象編程、變量與靜態類型也能夠做爲對象處理。orm
比較這兩個方法:
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開發人員: