|
Поскольку объекты могут конвертироваться в массивы (и наоборот), вы могли уже
догадаться, что они имеют много общего с массивами 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-контейнер к объекту. Это используется, если вы должны добавлять свойства,
являющиеся не простыми типами вроде целых чисел или строк, а массивами или другими объектами. |
| |