(PHP 7 >= 7.4.0, PHP 8)
FFI::cast — Performs a C type cast
$type
,
FFI\CData
|
int
|
float
|
bool
|
null
&$ptr
):
?
FFI\CData
FFI::cast()
creates a new
FFI\CData
object, that references the same C data structure, but is associated with a different type.
The resulting object does not own the C data, and the source
ptr
must survive the result. The C type may be specified as a
string
with any
valid C type declaration or as
FFI\CType
object, created before.
Any type declared for the instance is allowed.
Returns the freshly created FFI\CData object.
| Versionen | Description |
|---|---|
| 8.3.0 | Calling FFI::cast() statically is now deprecated. |
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