PHP.mk документација

FFI

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

book.ffi.php PHP.net прокси Преводот е вчитан
Оригинал на PHP.net
Патека book.ffi.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + преведен приказ Кодовите, табелите и белешките остануваат читливи во истиот тек.
FFI

Референца за `book.ffi.php` со подобрена типографија и навигација.

book.ffi.php

Интерфејс за странски функции

Вовед

Овој екстензија овозможува вчитување на споделени библиотеки (.DLL or .so"), повикување на C функции и пристап до C структури на податоци во чист PHP, без потреба од длабоко познавање на Zend extension API, и без потреба да се учи трет „среден“ јазик. Јавниот API е имплементиран како една класа FFI со неколку статични методи (некои од нив може да се повикаат динамички), и преоптоварени методи на објекти, кои ја вршат вистинската интеракција со C податоци.

Безбедност: стандардниот сет на знаци

FFI е опасен, бидејќи овозможува интеракција со системот на многу ниско ниво. FFI екстензијата треба да ја користат само програмери кои имаат работно познавање на C и користените C API. За да се минимизира ризикот, употребата на FFI API може да биде ограничена со ffi.enable php.ini directive.

Забелешка: FFI екстензијата не го прави класичниот PHP екстензија API застарен; таа е само обезбедена за ad-hoc интеракција со C функции и структури на податоци.

Совети

Во моментов, пристапот до FFI структури на податоци е значително (околу 2 пати) побавен од пристапот до нативни PHP низи и објекти. Затоа, нема смисла да се користи FFI екстензијата за брзина; сепак, може да има смисла да се користи за намалување на потрошувачката на меморија.

Белешки од корисници 1 белешка

— Враќа тип на параметар од функција
пред 2 години
Quickstart from Rasmus Lerdorf's 25 years of PHP talk. 

<?php
$ffi = FFI::cdef(
    "int printf(const char *format, ...);",
    "libc.so.6");
$ffi->printf("Hello %s!\n", "world");
?>

Requires ffi.enable=1
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.