Gestionnaire de données C
(PHP 7 >= 7.4.0, PHP 8)
Introduction
Les objets FFI\CData peuvent être utilisés de différentes manières, comme des
données PHP normale :
-
Les données C de type scalaire peuvent être lues et assignées via la propriété $cdata, par exemple.
$x = FFI::new('int'); $x->cdata = 42;
-
Les champs de type struct et union peuvent être accédés comme des propriétés d'objets PHP ordinaires, par exemple
$cdata->field
-
Les éléments d'un tableau C sont accessibles comme les éléments d'un tableau PHP, par exemple.
$cdata[$offset]
-
Les tableaux C peuvent être itérés en utilisant des instructions foreach.
-
Les tableaux C peuvent être utilisés comme arguments de count().
-
Les pointeurs C peuvent être déréférencés comme des tableaux, par exemple
$cdata[0]
-
Les pointeurs C peuvent être comparés à l'aide d'opérateurs de comparaison ordinaires (
<
,
<=
, ==
, !=
, >=
, >
).
-
Les pointeurs C peuvent être incrémentés et décrémentés à l'aide des opérations ordinaires (
+
/-
/ / ).
++
/–-
, par exemple $cdata += 5
-
Les pointeurs C peuvent être soustraits d'un autre à l'aide d'opérations ordinaires
-
.
-
Les pointeurs C vers des fonctions peuvent être appelés comme une fermeture PHP classique, par exemple
$cdata()
-
Toute donnée C peut être dupliquée en utilisant l'opérateur clone,
par exemple
$cdata2 = clone $cdata;
-
Toutes les données C peuvent être visualisées à l'aide de var_dump(), print_r(), etc.
-
FFI\CData peut maintenant être attribué à des structures et des champs à partir de PHP 8.3.0.
Note:
Les limitations notables sont que les instances de FFI\CData ne supportent pas les fonctions
isset(), empty() et unset(),
et que les structs et unions C enveloppés n'implémentent pas Traversable.
Synopsis de la classe
final
class FFI\CData
{
}
There are no user contributed notes for this page.