PHP 8.3.22 Released!

FFI::cast

(PHP 7 >= 7.4.0, PHP 8)

FFI::castRealiza una conversión de tipo C

Descripción

public FFI::cast(FFI\CType|string $type, FFI\CData|int|float|bool|null &$ptr): ?FFI\CData

FFI::cast() crea un nuevo objeto FFI\CData que hace referencia a la misma estructura de datos C, pero que está asociada a un tipo diferente. El objeto resultante no posee los datos C y la fuente ptr debe sobrevivir al resultado. El tipo C puede ser especificado como string con cualquier declaración de tipo C válida o como objeto FFI\CType, creado previamente. Cualquier tipo declarado para la instancia está permitido.

Parámetros

type

Una declaración C válida como string, o una instancia de FFI\CType que ya ha sido creada.

ptr

El gestor del puntero de una estructura de datos C.

Valores devueltos

Devuelve el objeto FFI\CData recién creado.

Historial de cambios

Versión Descripción
8.3.0 La llamada estática a FFI::cast() ahora está obsoleta.

add a note

User Contributed Notes 1 note

up
-3
Yaner
2 years ago
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
> root
To Top