pub fn wrap<T>(func: T) -> Self
    where
        T: PhpClosure + 'static,
    {
        Self(Box::new(func) as Box<dyn PhpClosure>)
    }
Wraps a [`Fn`] or [`FnMut`] Rust closure into a type which can be
returned to PHP.

The closure can accept up to 8 arguments which implement [`IntoZval`],
and can return any type which implements [`FromZval`]. The closure
must have a static lifetime, so cannot reference `self`.

# Parameters

* `func` - The closure to wrap. Should be boxed in the form `Box<dyn
Fn[Mut](...) -> ...>`.

# Example

```rust,no_run
use ext_php_rs::closure::Closure;

let closure = Closure::wrap(Box::new(|name| {
format!("Hello {}", name)
}) as Box<dyn Fn(String) -> String>);
```
src/closure.rs