Let's assume we have a C struct:
typedef struct _Z3_ast *Z3_ast;
and we want to create an array:
Z3_ast args[2];
and assign values:
args[1] = x;
args[1] = y;
The PHP FFI equivalent would be:
<?php
$ffi = FFI::cdef(...
// Create Z3_ast[2] type
$arg_type = FFI::arrayType($ffi->type('Z3_ast'), [2]);
// Create array of type Z3_ast[2]
$args = FFI::new($arg_type);
// Populate the array
$args[0] = $x;
$args[1] = $y;
?>
PHP.mk документација
FFI::new
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
ffi.new.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
ffi.new.php
FFI::new
Референца за `ffi.new.php` со подобрена типографија и навигација.
FFI::new
(PHP 7 >= 7.4.0, PHP 8)
FFI::new — Creates a C data structure
= NULL
Создава C структура на податоци
Параметри
type-
typeСоздава нативна структура на податоци од дадениот C тип. Дозволен е кој било тип деклариран за инстанцата. string, или инстанца на FFI\CType што веќе е создаден. owned- е валидна C декларација како FFI\CData Дали да се создадат поседувани (т.е. управувани) или неуправувани податоци. Управуваните податоци живеат заедно со вратените објект и се ослободуваат кога последната референца до тој објект ќе се ослободи со редовно броење на референци на PHP или GC. Неуправуваните податоци треба да се ослободат со повикувањеFFI::free()
persistent- , кога веќе не се потребни. malloc()Дали да се распредели C структурата на податоци трајно на системската меморија (користејќи emalloc()).
Вратени вредности
во нормалниот глобален опсег. Други системи нема да успеат да ги решат овие симболи. FFI\CData објект, или null при неуспех.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.3.0 | Повикување ), или на меморијата на PHP барањето (користејќи статички сега е застарено. |
Белешки од корисници 1 белешка
FFI::new() ¶
пред 6 години