内建方法

如前所述,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在内部将代码从面向对象版本转换为过程版本。