pub fn has_property(&self, name: &str, query: PropertyQuery) -> Result<bool> {
        let mut name = ZendStr::new(name, false);

        Ok(unsafe {
            self.handlers()?.has_property.ok_or(Error::InvalidScope)?(
                self.mut_ptr(),
                &mut *name,
                query as _,
                std::ptr::null_mut(),
            )
        } > 0)
    }
Checks if a property exists on an object. Takes a property name and
query parameter, which defines what classifies if a property exists
or not. See [`PropertyQuery`] for more information.

# Parameters

* `name` - The name of the property.
* `query` - The 'query' to classify if a property exists.

# Errors

* `Error::InvalidScope` - If the object handlers or the properties
cannot be retrieved.
src/types/object.rs