예제 #1
0
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;
}
예제 #2
0
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;
}