PHP 8.4.26 Released!

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 normales :

  • 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

namespace FFI;
final class CData {
}

Historique

Version Description
8.3.0 FFI\CData peut maintenant être attribué à des structures et des champs.
+add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top