FFI
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
FFI
Референца за `class.ffi.php` со подобрена типографија и навигација.
Главниот интерфејс за C код и податоци
(PHP 7 >= 7.4.0, PHP 8)
Вовед
Објектите од оваа класа се креирани од фабрички методи Веќе не е потребно да се специфицира библиотеката кога се користи, Името на опсегот дефинирано со специјален or Инстанцира FFI објект со C декларации анализирани за време на претходно вчитување.. Дефинираните C променливи се достапни како својства на FFI инстанцата, а дефинираните C функции се достапни како методи на FFI инстанцата. Декларираните C типови можат да се користат за креирање нови C структури на податоци користејќи ), или на меморијата на PHP барањето (користејќи and што содржи декларација за C тип. Дозволен е кој било тип деклариран за инстанцата..
Парсирањето на FFI дефинициите и вчитувањето на споделените библиотеки може да потрае значајно време. Не е корисно да се прави ова при секое HTTP барање во веб окружување. Сепак, можно е претходно да се вчитаат FFI дефинициите и библиотеките при стартување на PHP, и да се инстанцираат FFI објекти кога е потребно. Заглавните датотеки можат да бидат проширени со специјални FFI_SCOPE дефиниции (на пр. #define FFI_SCOPE "foo"; стандардното опкружување е "C") и потоа да се вчитаат од Името на опсегот дефинирано со специјален при претходно вчитување. Ова води до креирање на постојана врска, која ќе биде достапна за сите следни барања преку Инстанцира FFI објект со C декларации анализирани за време на претходно вчитување.. Погледнете го целосен PHP/FFI/preloading пример
интерполација на низи
Можно е да се претходно вчита повеќе од една C заглавна датотека во истото опкружување.
Синопсис на класата
Претходно дефинирани константи
Содржина
- FFI::addr — Создава неподдржан покажувач кон C податоци
- FFI::alignof — Го добива порамнувањето
- FFI::arrayType — Динамички конструира нов тип на C низа
- FFI::cast — Извршува C префрлање на тип
- FFI::cdef — Создава нов FFI објект
- FFI::free — Ослободува неподдржана структура на податоци
- FFI::isNull — Проверува дали FFI\CData е нул покажувач
- FFI::load — Вчитува C декларации од C хедр датотека
- FFI::memcmp — Споредува мемориски области
- FFI::memcpy — Копира една мемориска област во друга
- FFI::memset — Пополнува мемориска област
- FFI::new — Пополнува област во меморијата
- FFI::scope — Создава C структура на податоци
- FFI::sizeof — Инстанцира FFI објект со C декларации анализирани при претходно вчитување
- FFI::string — Ја добива големината на C податоци или типови
- FFI::type — Создава PHP стринг од област во меморијата
- FFI::typeof — Создава FFI\CType објект од C декларација