예제 #1
0
파일: adapter.c 프로젝트: Myleft/cphalcon
static int phalcon_session_adapter_has_property_internal(zval *object, zval *member, int has_set_exists TSRMLS_DC)
{
	zval *unique_id, *_SESSION, **tmp;
	zval key = zval_used_for_init, *pkey = &key;

	unique_id = phalcon_fetch_nproperty_this(object, SL("_uniqueId"), PH_NOISY TSRMLS_CC);

	_SESSION = phalcon_get_global(SS("_SESSION") TSRMLS_CC);
	if (Z_TYPE_P(_SESSION) != IS_ARRAY) {
		return 0;
	}

	phalcon_concat_vv(&pkey, unique_id, member, 0 TSRMLS_CC);
	tmp = phalcon_hash_get(Z_ARRVAL_P(_SESSION), pkey, BP_VAR_NA);
	zval_dtor(&key);

	if (!tmp) {
		return 0;
	}

	if (0 == has_set_exists) {
		return Z_TYPE_PP(tmp) != IS_NULL;
	}

	if (1 == has_set_exists) {
		return zend_is_true(*tmp);
	}

	return 1;
}
예제 #2
0
파일: concat.c 프로젝트: googlle/cphalcon7
void phalcon_concat_svsvv(zval *result, const char *op1, uint32_t op1_len, zval *op2, const char *op3, uint32_t op3_len, zval *op4, zval *op5, int self_var){
	phalcon_concat_svs(result, op1, op1_len, op2, op3, op3_len, self_var);
	phalcon_concat_vv(result, op4, op5, 1);
}
예제 #3
0
파일: concat.c 프로젝트: googlle/cphalcon7
void phalcon_concat_vvvv(zval *result, zval *op1, zval *op2, zval *op3, zval *op4, int self_var){
	phalcon_concat_vv(result, op1, op2, self_var);
	phalcon_concat_vv(result, op3, op4, 1);
}
예제 #4
0
파일: concat.c 프로젝트: googlle/cphalcon7
void phalcon_concat_vvvvsvv(zval *result, zval *op1, zval *op2, zval *op3, zval *op4, const char *op5, uint32_t op5_len, zval *op6, zval *op7, int self_var){
	phalcon_concat_vvv(result, op1, op2, op3, self_var);
	phalcon_concat_vs(result, op4, op5, op5_len, 1);
	phalcon_concat_vv(result, op6, op7, 1);
}
예제 #5
0
파일: concat.c 프로젝트: googlle/cphalcon7
void phalcon_concat_vsvv(zval *result, zval *op1, const char *op2, uint32_t op2_len, zval *op3, zval *op4, int self_var){
	phalcon_concat_vs(result, op1, op2, op2_len, self_var);
	phalcon_concat_vv(result, op3, op4, 1);
}