Gestor de datos C
En esta página
Introducción#
Los objetos FFI\CData pueden ser utilizados de diferentes maneras, como datos PHP normales:
-
Los datos C de tipo escalar pueden ser leídos y asignados a través de la propiedad \$cdata, por ejemplo.
$x = FFI::new('int'); $x->cdata = 42; -
Los campos de tipo struct y union pueden ser accedidos como propiedades de objetos PHP ordinarios, por ejemplo
$cdata->field -
Los elementos de un array C son accesibles como los elementos de un array PHP, por ejemplo.
$cdata[$offset] -
Los arrays C pueden ser iterados utilizando instrucciones
foreach. -
Los arrays C pueden ser utilizados como argumentos de
count. -
Los punteros C pueden ser desreferenciados como arrays, por ejemplo
$cdata[0] -
Los punteros C pueden ser comparados utilizando operadores de comparación ordinarios (
<,<=,==,!=,>=,>). -
Los punteros C pueden ser incrementados y decrementados utilizando operaciones ordinarias (
+/-/ / ).++/--, por ejemplo$cdata += 5 -
Los punteros C pueden ser sustraídos de otro utilizando operaciones ordinarias
-. -
Los punteros C hacia funciones pueden ser llamados como una clausura PHP clásica, por ejemplo
$cdata() -
Cualquier dato C puede ser duplicado utilizando el operador clone, por ejemplo
$cdata2 = clone $cdata; -
Todos los datos C pueden ser visualizados utilizando
var_dump,print_r, etc. -
FFI\CDatapuede ahora ser atribuido a estructuras y campos a partir de PHP 8.3.0.
[!NOTE] Las limitaciones notables son que las instancias de
FFI\CDatano soportan las funcionesisset,emptyyunset, y que las structs y unions C envueltas no implementan Traversable.
Sinopsis de la clase#
FFI
final
CData
Historial de cambios#
| Versión | Descripción |
|---|---|
| 8.3.0 | FFI\CData puede ahora ser atribuido a estructuras y campos. |