Объекты
Объекты
Поскольку объекты могут конвертироваться в массивы (и наоборот), вы могли уже догадаться, что они имеют много общего с массивами PHP. Объекты обслуживаются теми же самыми хэш-функциями, но для из создания существует другой API.
Для инициализации объекта вы используете функцию object_init():
zval *new_object; MAKE_STD_ZVAL(new_object); if(object_init(new_object) != SUCCESS) { // здесь обработка ошибок } |
Вы можете использовать функцию, описанную в Таблице 9.11, для добавления членов в ваши объекты.
Рисунок 34-8. Таблица 9.11. Zend API для создания объектов
Примечание: Все функции в Таблице 9.11 работают с объектом "object" с ключом "key". Этот key образует имя члена, поэтому доступ к результирующему члену может быть получен как $object->key. |
Функция | Описание |
---|---|
add_property_long(zval *object, char *key, longl);() | Добавляет long к объекту. |
add_property_unset(zval *object, char*key);() | Добавляет свойство unset к объекту. |
add_property_bool(zval *object, char *key, intb);() | Добавляет Boolean к объекту. |
add_property_resource(zval *object, char *key, long r);() |
Добавляет ресурс к объекту. |
add_property_double(zval *object, char *key, double d);() | Добавляет double к объекту. |
add_property_string(zval *object, char *key, char *str, int duplicate);() |
Добавляет строку к объекту. |
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() |
Добавляет строку специфицированной длины к объекту. Эта функция быстрее, чем add_property_string(), а также безопасна в двоичном режиме. |
add_property_zval(zval *obect, char *key, zval *container):() |
Добавляет zval-контейнер к объекту. Это используется, если вы должны добавлять свойства, являющиеся не простыми типами вроде целых чисел или строк, а массивами или другими объектами. |