Functions & methods

PHP functions and methods are represented by the Function struct.

You can use the try_from_function and try_from_method methods to obtain a Function struct corresponding to the passed function or static method name.
It's heavily recommended you reuse returned Function objects, to avoid the overhead of looking up the function/method name.

#![cfg_attr(windows, feature(abi_vectorcall))]
extern crate ext_php_rs;
use ext_php_rs::prelude::*;

use ext_php_rs::zend::Function;

#[php_function]
pub fn test_function() -> () {
    let var_dump = Function::try_from_function("var_dump").unwrap();
    let _ = var_dump.try_call(vec![&"abc"]);
}

#[php_function]
pub fn test_method() -> () {
    let f = Function::try_from_method("ClassName", "staticMethod").unwrap();
    let _ = f.try_call(vec![&"abc"]);
}

fn main() {}