Учебник РНР
Назад Глава 34. Создание Переменных Вперёд

Объекты

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

Назад Оглавление Вперёд
Массивы Вверх Ресурсы