static zval *get_property(ds_pair_t *pair, zval *offset) { if (offset && Z_TYPE_P(offset) == IS_STRING) { if (ZVAL_EQUALS_STRING(offset, "key")) { return &pair->key; } if (ZVAL_EQUALS_STRING(offset, "value")) { return &pair->value; } } return NULL; }
static zval *get_value(Pair *pair, zval *offset) { if (offset) { if (Z_TYPE_P(offset) == IS_LONG) { if (Z_LVAL_P(offset) == 0) { return &pair->key; } if (Z_LVAL_P(offset) == 1) { return &pair->value; } } else if (Z_TYPE_P(offset) == IS_STRING) { if (ZVAL_EQUALS_STRING(offset, "key")) { return &pair->key; } if (ZVAL_EQUALS_STRING(offset, "value")) { return &pair->value; } } } return NULL; }