For example, stdlib.h headfile defines a function called "system()" in Linux: extern int system (const char *__command) __wur;
And we can call it using FFI extension:
<?php
$ffi_obj = FFI::cdef('int system(char *command);')
$ffi_obj->system('whoami');
?>
Then execute the php script as if we were calling the real C `system()`:
$ whoami
> root
$ php demo.php
> rootFFI::cast
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
FFI::cast
Референца за `ffi.cast.php` со подобрена типографија и навигација.
FFI::cast
(PHP 7 >= 7.4.0, PHP 8)
FFI::cast — Извршува C кастинг на тип
= NULL
FFI::cast() креира нова FFI\CData
објект, што упатува на истата C структура на податоци, но е поврзан со различен тип. Резултирачкиот објект не го поседува C податокот, а изворот ptr
мора да го надживее резултатот. C типот може да биде специфициран како string со каква било валидна C декларација на тип или како FFI\CType објект, создаден претходно. Дозволен е каков било тип деклариран за инстанцата.
Параметри
Вратени вредности
во нормалниот глобален опсег. Други системи нема да успеат да ги решат овие симболи. FFI\CData object.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.3.0 | Повикување FFI::cast() статички сега е застарено. |