(PHP 7 >= 7.4.0, PHP 8)
Objetos FFI\CData podem ser usados de vƔrias maneiras como dados comuns do PHP:
Dados em C de tipos escalares podem ser lidos e atribuĆdos atravĆ©s da propriedade $cdata, por exemplo,
$x = FFI::new('int'); $x->cdata = 42;
Campos de estruturas e uniƵes em C podem ser acessados como uma propriedade comum de objeto PHP, por exemplo,
$cdata->field
Elementos de array em C podem ser acessados como elementos de array comuns do PHP, por exemplo,
$cdata[$offset]
Arrays em C podem ser iterados usando instruƧƵes foreach.
Arrays em C podem ser usados como argumentos de count().
Ponteiros em C podem ser desreferenciados como arrays, por exemplo, $cdata[0]
Ponteiros em C podem ser comparados usando operadores comuns de comparação (<,
<=, ==, !=, >=, >).
Ponteiros em C podem ser incrementados e decrementads usando as operaƧƵes comuns +/-/
++/--, por exemplo, $cdata += 5
Ponteiros em C podem ser subtraĆdos de outros usando operaƧƵes normais de subtração -.
Ponteiros para funƧƵes em C podem ser chamados como closures normais de PHP, por exemplo, $cdata()
Qualquer dado em C pode ser duplicado usando o operador clone,
por exemplo, $cdata2 = clone $cdata;
Qualquer dado em C pode ser visualizado usando var_dump(), print_r() etc.
FFI\CData agora pode ser atribuĆdo a estruturas e campos a partir do PHP 8.3.0.
Nota:
Limitações notÔveis são: instâncias FFI\CData não suportam isset(), empty() e unset(); e estruturas e uniões C encapsuladas não implementam Traversable.
| Versão | Descrição |
|---|---|
| 8.3.0 | FFI\CData agora pode ser atribuĆdo a estruturas e campos. |