xxxx日本护士丰满hd|亚洲av日韩av无码av欧美av|精品国产污污网站在线看免费|日日摸日日碰夜夜爽久久|国产一区二区亚洲精品

PHP Callbacks

It is possible to assign a PHP closure to a native variable of function pointer type or to pass it as a function argument:

<?php
$zend 
FFI::cdef("
    typedef int (*zend_write_func_t)(const char *str, size_t str_length);
    extern zend_write_func_t zend_write;
"
);
 
echo 
"Hello World 1!\n";
 
$orig_zend_write = clone $zend->zend_write;
$zend->zend_write = function($str$len) {
    global 
$orig_zend_write;
    
$orig_zend_write("{\n\t"3);
    
$ret $orig_zend_write($str$len);
    
$orig_zend_write("}\n"2);
    return 
$ret;
};
echo 
"Hello World 2!\n";
$zend->zend_write $orig_zend_write;
echo 
"Hello World 3!\n";
?>

以上例程會(huì )輸出:

Hello World 1!
{
        Hello World 2!
}
Hello World 3!
Although this works, this functionality is not supported on all libffi platforms, is not efficient and leaks resources by the end of request.
小技巧

It is therefore recommended to minimize the usage of PHP callbacks.

xxxx日本护士丰满hd|亚洲av日韩av无码av欧美av|精品国产污污网站在线看免费|日日摸日日碰夜夜爽久久|国产一区二区亚洲精品