pub fn insert<V>(&mut self, key: &str, val: V) -> Result<()>
    where
        V: IntoZval,
    {
        let mut val = val.into_zval(false)?;
        unsafe { zend_hash_str_update(self, CString::new(key)?.as_ptr(), key.len(), &mut val) };
        val.release();
        Ok(())
    }
Attempts to insert an item into the hash table, or update if the key
already exists. Returns nothing in a result if successful.

# Parameters

* `key` - The key to insert the value at in the hash table.
* `value` - The value to insert into the hash table.

# Returns

Returns nothing in a result on success.

# Errors

Returns an error if the key could not be converted into a [`CString`],
or converting the value into a [`Zval`] failed.

# Example

```no_run
use ext_php_rs::types::ZendHashTable;

let mut ht = ZendHashTable::new();

ht.insert("a", "A");
ht.insert("b", "B");
ht.insert("c", "C");
assert_eq!(ht.len(), 3);
```
src/types/array.rs