Доступ к данным C
(PHP 7 >= 7.4.0, PHP 8)
Введение
Объекты 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.
Обзор классов
final
class FFI\CData
{
}
There are no user contributed notes for this page.