Доступ к данным C

(PHP 7 >= 7.4.0)

Введение

Объекты FFI\CData могут использоваться множеством разных способов как обычные данные PHP:

  • Данные C скалярных типов могут читаться и присваиваться через свойство $cdata: $x = FFI::new('int'); $x->cdata = 42;
  • Поля структур(struct) и объединений(union) C доступны как обычные свойства объекта PHP: $cdata->field
  • Доступ к элементам массивов C происходит так же, как доступ к элементам обычного массива PHP: $cdata[$offset]
  • Массивы C можно перебирать с помощью foreach.
  • Для массивов C можно можно использовать функцию count().
  • Указатели C могут быть разыменованы как массив: $cdata[0]
  • Указатели C можно сравнивать обычными операторами сравнения (<, <=, ==, !=, >=, >).
  • Для указателей C можно использовать операции инкремента и декремента +/-/ ++/–-: $cdata += 5
  • Указатели C можно вычитать друг из друга с помощью операции -.
  • Указатели на функции можно вызывать как обычные замыкания PHP: $cdata()
  • Любые данные C можно клонировать с помощью clone: $cdata2 = clone $cdata;
  • Любые данные C можно визуализировать с помощью var_dump(), print_r(), и т.д.

Замечание: Обратите внимание, что для экземпляров FFI\CData не поддерживаются функции isset(), empty() и unset(). А для тех, что оборачивают структуры и объединения не реализован интерфейс Traversable.

Обзор классов

FFI\CData {
}