Métodos integrados
Como se mencionó antes, Zephir promueve la programación orientada a objetos. Las variables relacionadas con los tipos estáticos también se pueden manejar como objetos.
Compare estos dos métodos:
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;
}
Y:
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;
}
Los tienen la misma funcionalidad, pero el segundo utiliza programación orientada a objecto. Los métodos de llamada en variables de tipo estático no tienen ningún impacto en el rendimiento, ya que Zephir transforma internamente el código de la versión orientada a objetos a la versión de procedimiento.
String
Los siguientes métodos incorporados de cadena están disponibles:
OO | Procedimientos | Descripción |
---|---|---|
s->format() |
sprintf(s, "%s", x) |
Retorna una cadena formateada |
s->index("foo") |
strpos(s, "foo") |
Busca la posición de la primer aparición de una subcadena en una cadena |
s->length() |
strlen(s) |
Obtiene el largo de una cadena |
s->lower() |
strtolower(s) |
Convierte a minúsculas una cadena de texto |
s->lowerfirst() |
lcfirst(s) |
Convierte en minúscula la primera letra de la cadena de texto |
s->md5() |
md5(s) |
Calcula el hash MD5 de la cadena de texto |
s->sha1() |
sha1(s) |
Calcula el hash SHA1 de la cadena de texto |
s->trim() |
trim(s) |
Quita los espacios en blanco (u otros caracteres) del inicio y del final del texto |
s->trimleft() |
ltrim(s) |
Quita los espacios en blanco (u otros caracteres) del inicio del texto |
s->trimright() |
rtrim(s) |
Quita los espacios en blanco (u otros caracteres) del final del texto |
s->upper() |
strtoupper(s) |
Convierte a mayúsculas una cadena de texto |
s->upperfirst() |
ucfirst(s) |
Convierte en mayúscula la primera letra de la cadena de texto |
Array
Los siguientes métodos incorporados de array están disponibles:
OO | Procedimientos | Descripción |
---|---|---|
a->combine(b) |
array_combine(a, b) |
Crea un array utilizando un array para las claves y otro para sus valores |
a->diff() |
array_diff(a) |
Calcula la diferencia entre arrays |
a->flip() |
array_flip(a) |
Intercambia todos las claves del array por sus valores asociados |
a->hasKey() |
array_key_exists(a) |
Comprueba si el índice o clave dada existe en el array |
a->intersect(b) |
array_intersect(a, b) |
Calcula la intersección entre arrays |
a->join(" ") |
join(" ", a) |
Une los elementos de un array con un texto |
a->keys() |
array_keys(a) |
Devolver todas las claves o un subconjunto de las claves de una matriz |
a->merge(b) |
array_merge(a, b) |
Une uno o más arrays |
a->pad() |
array_pad(a, b) |
Rellena un array de un largo y con un valor dados |
a->rev() |
array_reverse(a) |
Regresa un array con los elementos en orden inverso |
a->reversed() |
array_reverse(a) |
Regresa un array con los elementos en orden inverso |
a->split() |
array_chunk(a) |
Divide un array en partes |
a->values() |
array_values(a) |
Regresa todos los valores de un array |
a->walk() |
array_walk(a) |
Aplica una función definida por el usuario a cada elemento de un array |
Char
Los siguientes métodos incorporados para chars están disponibles:
OO | Procedimientos |
---|---|
ch->toHex() |
sprintf("%X", ch) |
Integer
Los siguientes métodos incorporados para enteros están disponibles:
OO | Procedimientos |
---|---|
i->abs() |
abs(i) |