您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ ALLOC_ZVAL函数代码示例

51自学网 2021-06-01 19:34:48
  C++
这篇教程C++ ALLOC_ZVAL函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中ALLOC_ZVAL函数的典型用法代码示例。如果您正苦于以下问题:C++ ALLOC_ZVAL函数的具体用法?C++ ALLOC_ZVAL怎么用?C++ ALLOC_ZVAL使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了ALLOC_ZVAL函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: mlfi_header

/* {{{ mlfi_header()*/static sfsistat mlfi_header(SMFICTX *ctx, char *headerf, char *headerv){	zval function_name, retval, *param[2];	int status;	TSRMLS_FETCH();	/* call userland */	INIT_ZVAL(function_name);		ALLOC_ZVAL(param[0]);	ALLOC_ZVAL(param[1]);	INIT_PZVAL(param[0]);	INIT_PZVAL(param[1]);		ZVAL_STRING(&function_name, "milter_header", 0);	ZVAL_STRING(param[0], headerf, 1);	ZVAL_STRING(param[1], headerv, 1);	/* set the milter context for possible use in API functions */	MG(ctx) = ctx;	MG(state) = MLFI_HEADER;		status = call_user_function(CG(function_table), NULL, &function_name, &retval, 2, param TSRMLS_CC);	MG(state) = MLFI_NONE;		zval_ptr_dtor(&param[0]);	zval_ptr_dtor(&param[1]);			if (status == SUCCESS && Z_TYPE(retval) == IS_LONG) {		return Z_LVAL(retval);	}		return SMFIS_CONTINUE;}
开发者ID:do-aki,项目名称:petipeti,代码行数:37,


示例2: phalcon_array_update_long

/** * Updates values on arrays by long indexes only */int phalcon_array_update_long(zval **arr, ulong index, zval **value, int flags TSRMLS_DC){	if (Z_TYPE_PP(arr) != IS_ARRAY) {		php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Cannot use a scalar value as an array");		return FAILURE;	}	if ((flags & PH_CTOR) == PH_CTOR) {		zval *new_zv;		Z_DELREF_PP(value);		ALLOC_ZVAL(new_zv);		INIT_PZVAL_COPY(new_zv, *value);		*value = new_zv;		zval_copy_ctor(new_zv);	}	if ((flags & PH_SEPARATE) == PH_SEPARATE) {		if (Z_REFCOUNT_PP(arr) > 1) {			zval *new_zv;			Z_DELREF_PP(arr);			ALLOC_ZVAL(new_zv);			INIT_PZVAL_COPY(new_zv, *arr);			*arr = new_zv;			zval_copy_ctor(new_zv);	    }	}	if ((flags & PH_COPY) == PH_COPY) {		Z_ADDREF_PP(value);	}	return zend_hash_index_update(Z_ARRVAL_PP(arr), index, value, sizeof(zval *), NULL);}
开发者ID:fatihzkaratana,项目名称:cphalcon,代码行数:36,


示例3: phalcon_array_unset

/** * Unsets zval index from array */int phalcon_array_unset(zval *arr, zval *index){	zval *copy;	if (Z_TYPE_P(arr) != IS_ARRAY) {		return 0;	}	if (Z_TYPE_P(index) == IS_NULL) {		ALLOC_ZVAL(copy);		ZVAL_ZVAL(copy, index, 1, 0);		convert_to_string(copy);		index = copy;	} else {		if (Z_TYPE_P(index) == IS_BOOL || Z_TYPE_P(index) == IS_DOUBLE) {			ALLOC_ZVAL(copy);			ZVAL_ZVAL(copy, index, 1, 0);			convert_to_long(copy);			index = copy;		}	}	if (Z_TYPE_P(index) == IS_STRING) {		return zend_hash_del(Z_ARRVAL_P(arr), Z_STRVAL_P(index), Z_STRLEN_P(index)+1);	} else {		return zend_hash_index_del(Z_ARRVAL_P(arr), Z_LVAL_P(index));	}	return 0;}
开发者ID:fatihzkaratana,项目名称:cphalcon,代码行数:33,


示例4: phalcon_array_update_zval

/** * Updates values on arrays by string or long indexes */int phalcon_array_update_zval(zval **arr, zval *index, zval **value, int flags TSRMLS_DC){	if (Z_TYPE_PP(arr) != IS_ARRAY) {		php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Cannot use a scalar value as an array");		return FAILURE;	}	if (Z_TYPE_P(index) == IS_NULL) {		convert_to_string(index);	} else {		if (Z_TYPE_P(index) == IS_BOOL || Z_TYPE_P(index) == IS_DOUBLE) {			convert_to_long(index);		}	}	if ((flags & PH_CTOR) == PH_CTOR) {		zval *new_zv;		Z_DELREF_PP(value);		ALLOC_ZVAL(new_zv);		INIT_PZVAL_COPY(new_zv, *value);		*value = new_zv;		zval_copy_ctor(new_zv);	}	if ((flags & PH_SEPARATE) == PH_SEPARATE) {		if (Z_REFCOUNT_PP(arr) > 1) {			zval *new_zv;			Z_DELREF_PP(arr);			ALLOC_ZVAL(new_zv);			INIT_PZVAL_COPY(new_zv, *arr);			*arr = new_zv;			zval_copy_ctor(new_zv);	    }	}	if ((flags & PH_COPY) == PH_COPY) {		Z_ADDREF_PP(value);	} 	if(Z_TYPE_P(index) == IS_STRING){		return zend_hash_update(Z_ARRVAL_PP(arr), Z_STRVAL_P(index), Z_STRLEN_P(index)+1, value, sizeof(zval *), NULL);	} else {		if (Z_TYPE_P(index) == IS_LONG) {			return zend_hash_index_update(Z_ARRVAL_PP(arr), Z_LVAL_P(index), value, sizeof(zval *), NULL);		} else {			php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Illegal offset type");		}	}	return FAILURE;}
开发者ID:fatihzkaratana,项目名称:cphalcon,代码行数:54,


示例5: pthreads_unset_property

/* {{{ unset an object property */void pthreads_unset_property(PTHREADS_UNSET_PROPERTY_PASSTHRU_D) {	zval *mstring = NULL;	PTHREAD pthreads = PTHREADS_FETCH_FROM(object);	if (Z_TYPE_P(member) != IS_STRING) {		ALLOC_ZVAL(mstring);		*mstring = *member;		zval_copy_ctor(			mstring		);		INIT_PZVAL(mstring);		convert_to_string(mstring);		member = mstring;#if PHP_VERSION_ID > 50399		key = NULL;#endif	}	if (Z_TYPE_P(member) == IS_STRING) {		if (pthreads_store_delete(pthreads->store, Z_STRVAL_P(member), Z_STRLEN_P(member) TSRMLS_CC)!=SUCCESS){			zend_error(				E_WARNING, 				"pthreads has experienced an internal error while deleting %s::$%s", 				Z_OBJCE_P(object)->name, Z_STRVAL_P(member)			);		}	} else zend_error(E_WARNING, "pthreads detected an attempt to use an unsupported kind of key in %s", Z_OBJCE_P(object)->name);		if (mstring != NULL) {		zval_ptr_dtor(&mstring);	}}
开发者ID:ArkeologeN,项目名称:pthreads,代码行数:33,


示例6: pthreads_has_property

/* {{{ check if a thread has a property set, wherever it is available */int pthreads_has_property(PTHREADS_HAS_PROPERTY_PASSTHRU_D) {	int isset = 0;	zval *mstring = NULL;	PTHREAD pthreads = PTHREADS_FETCH_FROM(object);	if (Z_TYPE_P(member) != IS_STRING) {		ALLOC_ZVAL(mstring);		*mstring = *member;		zval_copy_ctor(			mstring		);		INIT_PZVAL(mstring);		convert_to_string(mstring);		member = mstring;#if PHP_VERSION_ID > 50399		key = NULL;#endif	}	if (Z_TYPE_P(member) == IS_STRING) {		isset = pthreads_store_isset(pthreads->store, Z_STRVAL_P(member), Z_STRLEN_P(member), has_set_exists TSRMLS_CC);	} else zend_error(E_WARNING, "pthreads has detected an attempt to use an unsupported kind of key in %s", Z_OBJCE_P(object)->name);	if (mstring != NULL) {		zval_ptr_dtor(&mstring);	}	return isset;}
开发者ID:ArkeologeN,项目名称:pthreads,代码行数:31,


示例7: zend_get_parameters_array

ZEND_API int zend_get_parameters_array(int ht, int param_count, zval **argument_array){	void **p;	int arg_count;	zval *param_ptr;	ELS_FETCH();	p = EG(argument_stack).top_element-2;	arg_count = (ulong) *p;	if (param_count>arg_count) {		return FAILURE;	}	while (param_count-->0) {		param_ptr = *(p-arg_count);		if (!PZVAL_IS_REF(param_ptr) && param_ptr->refcount>1) {			zval *new_tmp;			ALLOC_ZVAL(new_tmp);			*new_tmp = *param_ptr;			zval_copy_ctor(new_tmp);			INIT_PZVAL(new_tmp);			param_ptr = new_tmp;			((zval *) *(p-arg_count))->refcount--;			*(p-arg_count) = param_ptr;		}		*(argument_array++) = param_ptr;		arg_count--;	}	return SUCCESS;}
开发者ID:jehurodrig,项目名称:PHP-4.0.6-16-07-2009,代码行数:33,


示例8: orbit_save_data

/* * save a corba object to a php object */void orbit_save_data(zval * php_object, int type, void * data){    pval * orbit_data_handle = NULL;    long id = zend_list_insert(                  data, 										/* data */                  type								/* type */              );    /*     * do it like they do in php_COM_call_function_handler     * (insert into some magic hash index)     */    ALLOC_ZVAL(orbit_data_handle);	/* allocate memory for value */    orbit_data_handle->type = IS_LONG;    orbit_data_handle->value.lval = id;    pval_copy_constructor(orbit_data_handle);	/* why? */    INIT_PZVAL(orbit_data_handle);	/* set reference count */    zend_hash_index_update(        php_object->value.obj.properties, /* hashtable */        0, 																/* hash??? */        &orbit_data_handle,								/* data */        sizeof(pval *),										/* data size */        NULL															/* destination */    );}
开发者ID:jehurodrig,项目名称:PHP-4.0.6-16-07-2009,代码行数:33,


示例9: mlfi_envfrom

/* {{{ mlfi_envform()*/static sfsistat mlfi_envfrom(SMFICTX *ctx, char **argv){	zval function_name, retval, *param[1];	int status;	TSRMLS_FETCH();	/* call userland */	INIT_ZVAL(function_name);		ALLOC_ZVAL(param[0]);	INIT_PZVAL(param[0]);	ZVAL_STRING(&function_name, "milter_envfrom", 0);	array_init(param[0]);	while (*argv) {		add_next_index_string(param[0], *argv, 1);		argv++;	}	/* set the milter context for possible use in API functions */	MG(ctx) = ctx;	MG(state) = MLFI_ENVFROM;		status = call_user_function(CG(function_table), NULL, &function_name, &retval, 1, param TSRMLS_CC);	MG(state) = MLFI_NONE;	zval_ptr_dtor(param);		if (status == SUCCESS && Z_TYPE(retval) == IS_LONG) {		return Z_LVAL(retval);	}	return SMFIS_CONTINUE;}
开发者ID:do-aki,项目名称:petipeti,代码行数:37,


示例10: mysqlnd_alloc_get_zval

zval * mysqlnd_alloc_get_zval(MYSQLND_ZVAL_CACHE * const cache){	zval *ret = NULL;#ifndef MYSQLND_SILENT	php_printf("[mysqlnd_alloc_get_zval %p] *last_added=%p free_items=%d  ", cache, cache? cache->free_list->last_added:NULL, cache->free_items);#endif	if (cache) {		if ((ret = *cache->free_list->last_added)) {			*cache->free_list->last_added++ = NULL;			--cache->free_items;			++cache->get_hits;		} else {			++cache->get_misses;		}	}	if (!ret) {		ALLOC_ZVAL(ret);	}	INIT_PZVAL(ret);#ifndef MYSQLND_SILENT	php_printf("ret=%p/n", ret);#endif	return ret;}
开发者ID:Hasib786,项目名称:php7,代码行数:28,


示例11: mlfi_connect

/* {{{ mlfi_connect()*/static sfsistat	mlfi_connect(SMFICTX *ctx, char *hostname, _SOCK_ADDR *hostaddr){	zend_file_handle file_handle;	zval function_name, retval, *param[1];	int status;	TSRMLS_FETCH();	/* request startup */	if (php_request_startup(TSRMLS_C)==FAILURE) {		SG(headers_sent) = 1;		SG(request_info).no_headers = 1;		php_request_shutdown((void *) 0);		return SMFIS_TEMPFAIL;	}		/* disable headers */	SG(headers_sent) = 1;	SG(request_info).no_headers = 1;		if (filename == NULL) {		php_printf("No input file specified");		return SMFIS_TEMPFAIL;	}		if (!(file_handle.handle.fp = VCWD_FOPEN(filename, "rb"))) {		php_printf("Could not open input file: %s/n", filename);		return SMFIS_TEMPFAIL;	}	file_handle.type = ZEND_HANDLE_FP;	file_handle.filename = filename;	file_handle.free_filename = 0;	file_handle.opened_path = NULL;	php_execute_script(&file_handle TSRMLS_CC);		/* call userland */	INIT_ZVAL(function_name);	ALLOC_ZVAL(param[0]);	INIT_PZVAL(param[0]);	ZVAL_STRING(&function_name, "milter_connect", 0);	ZVAL_STRING(param[0], hostname, 1);	/* set the milter context for possible use in API functions */	MG(ctx) = ctx;	MG(state) = MLFI_CONNECT;	status = call_user_function(CG(function_table), NULL, &function_name, &retval, 1, param TSRMLS_CC);	MG(state) = MLFI_NONE;	zval_ptr_dtor(param);	if (status == SUCCESS && Z_TYPE(retval) == IS_LONG) {		return Z_LVAL(retval);	}		return SMFIS_CONTINUE;}
开发者ID:do-aki,项目名称:petipeti,代码行数:62,


示例12: mlfi_body

/* {{{ mlfi_body()*/static sfsistat mlfi_body(SMFICTX *ctx, u_char *bodyp, size_t len){	zval function_name, retval, *param[1];	int status;	TSRMLS_FETCH();	/* call userland */	INIT_ZVAL(function_name);		ALLOC_ZVAL(param[0]);	INIT_PZVAL(param[0]);	ZVAL_STRING(&function_name, "milter_body", 0);	ZVAL_STRINGL(param[0], (char*)bodyp, len, 1); /*alex*/		/* set the milter context for possible use in API functions */	MG(ctx) = ctx;	MG(state) = MLFI_BODY;		status = call_user_function(CG(function_table), NULL, &function_name, &retval, 1, param TSRMLS_CC);	MG(state) = MLFI_NONE;		zval_ptr_dtor(param);		if (status == SUCCESS && Z_TYPE(retval) == IS_LONG) {		return Z_LVAL(retval);	}	return SMFIS_CONTINUE;}
开发者ID:do-aki,项目名称:petipeti,代码行数:33,


示例13: zephir_array_update_quick_string

/** * @brief Updates value in @a arr at position @a index with @a value using the precomputed hash @a key * @param[in,out] arr Array * @param index Index * @param index_length Length of the index, should include the trailing zero * @param key Precomputed hash of @c value * @param value Value * @param flags Flags * @return Whether the operation succeeded * @retval @c FAILURE Failure, @a arr is not an array * @retval @c SUCCESS Success * @throw @c E_WARNING if @a arr is not an array * * Equivalent to <tt>$arr[$index] = $value</tt> in PHP. * * Flags may be a bitwise OR of the following values: * @arg @c PH_CTOR: create a copy of @a value and work with that copy; @c *value will be updated with the newly constructed value * @arg @c PH_SEPARATE: separate @a arr if its reference count is greater than 1; @c *arr will contain the separated version * @arg @c PH_COPY: increment the reference count on @c **value */int zephir_array_update_quick_string(zval **arr, const char *index, uint index_length, unsigned long key, zval **value, int flags) {    if (Z_TYPE_PP(arr) != IS_ARRAY) {        zend_error(E_WARNING, "Cannot use a scalar value as an array (3)");        return FAILURE;    }    if ((flags & PH_CTOR) == PH_CTOR) {        zval *new_zv;        Z_DELREF_PP(value);        ALLOC_ZVAL(new_zv);        INIT_PZVAL_COPY(new_zv, *value);        *value = new_zv;        zval_copy_ctor(new_zv);    }    if ((flags & PH_SEPARATE) == PH_SEPARATE) {        SEPARATE_ZVAL_IF_NOT_REF(arr);    }    if ((flags & PH_COPY) == PH_COPY) {        Z_ADDREF_PP(value);    }    return zend_hash_quick_update(Z_ARRVAL_PP(arr), index, index_length, key, value, sizeof(zval *), NULL);}
开发者ID:golovanov,项目名称:php-ext-zendxml,代码行数:46,


示例14: zephir_array_update_long

/** * @brief Updates value in @a arr at position @a index with @a value * @param[in,out] arr Array * @param index Index * @param[in,out] value Value * @param flags Flags * @return Whether the operation succeeded * @retval @c FAILURE Failure, @a arr is not an array * @retval @c SUCCESS Success * @throw @c E_WARNING if @c arr is not an array * * Equivalent to <tt>$arr[$index] = $value</tt> in PHP where @c $index is an integer. * Flags may be a bitwise OR of the following values: * @arg @c PH_CTOR: create a copy of @a value and work with that copy; @c *value will be updated with the newly constructed value * @arg @c PH_SEPARATE: separate @a arr if its reference count is greater than 1; @c *arr will contain the separated version * @arg @c PH_COPY: increment the reference count on @c **value */int zephir_array_update_long(zval **arr, unsigned long index, zval **value, int flags ZEPHIR_DEBUG_PARAMS) {    if (Z_TYPE_PP(arr) != IS_ARRAY) {        zend_error(E_WARNING, "Cannot use a scalar value as an array in %s on line %d", file, line);        return FAILURE;    }    if ((flags & PH_CTOR) == PH_CTOR) {        zval *new_zv;        Z_DELREF_PP(value);        ALLOC_ZVAL(new_zv);        INIT_PZVAL_COPY(new_zv, *value);        *value = new_zv;        zval_copy_ctor(new_zv);    }    if ((flags & PH_SEPARATE) == PH_SEPARATE) {        SEPARATE_ZVAL_IF_NOT_REF(arr);    }    if ((flags & PH_COPY) == PH_COPY) {        Z_ADDREF_PP(value);    }    return zend_hash_index_update(Z_ARRVAL_PP(arr), index, value, sizeof(zval *), NULL);}
开发者ID:golovanov,项目名称:php-ext-zendxml,代码行数:43,


示例15: spl_instantiate

/* {{{ spl_instantiate */PHPAPI void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRMLS_DC){	if (alloc) {		ALLOC_ZVAL(*object);	}	object_init_ex(*object, pce);	(*object)->refcount = 1;	(*object)->is_ref = 1; /* check if this can be hold always */}
开发者ID:dashiwa,项目名称:php52-backports,代码行数:10,


示例16: zend_update_property_stringl

void zend_update_property_stringl(zend_class_entry *scope, zval *object, char *name, int name_length, char *value, int value_len TSRMLS_DC){	zval *tmp;		ALLOC_ZVAL(tmp);	tmp->is_ref = 0;	tmp->refcount = 0;	ZVAL_STRINGL(tmp, value, value_len, 1);	zend_update_property(scope, object, name, name_length, tmp TSRMLS_CC);}
开发者ID:ngourdeau,项目名称:pecl-http,代码行数:10,


示例17: ZEND_METHOD

ZEND_METHOD (Msg, __construct2){	zval *hdr = 0;	ALLOC_ZVAL (hdr);	object_init_ex (hdr, msghdr_ce);	if (zend_hash_update (Z_OBJPROP_P (getThis ()), "hdr", sizeof ("hdr"), &hdr, sizeof (hdr), 0) == FAILURE)		BUG_ON (1);}
开发者ID:tniuli,项目名称:xio,代码行数:10,


示例18: add_offset_pair

static void add_offset_pair(zval *result, char *string, int string_len, int offset){    zval *match_pair;    ALLOC_ZVAL(match_pair);    array_init(match_pair);    INIT_PZVAL(match_pair);    add_next_index_stringl(match_pair, string, string_len, FALSE);    add_next_index_long(match_pair, offset);    zend_hash_next_index_insert(Z_ARRVAL_P(result), &match_pair, sizeof(zval *), NULL);}
开发者ID:mickelfeng,项目名称:regexp,代码行数:12,


示例19: ALLOC_ZVAL

	SharedString KPHPObject::DisplayString(int levels)	{		// Make a copy of our object zval* and then convert it to a string.		zval* tempObject = NULL;		ALLOC_ZVAL(tempObject);		*tempObject = *object;		INIT_PZVAL(tempObject);		zval_copy_ctor(tempObject);		convert_to_string(tempObject);		return new std::string(Z_STRVAL_P(tempObject));	}
开发者ID:jonnymind,项目名称:kroll,代码行数:12,


示例20: phpg_read_property

/* {{{ phpg_read_property() */zval* phpg_read_property(zval *object, zval *member, int type PHPGTK_PROPERTY_END){	phpg_head_t *poh = NULL;	zval tmp_member;	zval result, *result_ptr = NULL;	prop_info_t *pi = NULL;	int ret; 	if (member->type != IS_STRING) {		tmp_member = *member;		zval_copy_ctor(&tmp_member);		convert_to_string(&tmp_member);		member = &tmp_member;	}	ret = FAILURE;	poh = (phpg_head_t *) zend_object_store_get_object(object TSRMLS_CC);	if (poh->pi_hash) {		ret = zend_hash_find(poh->pi_hash, Z_STRVAL_P(member), Z_STRLEN_P(member)+1, (void **) &pi);	}	if (ret == SUCCESS) {        memset(&result, 0, sizeof(zval));        ZVAL_NULL(&result);		ret = pi->read(poh, &result TSRMLS_CC);		if (ret == SUCCESS) {			ALLOC_ZVAL(result_ptr);			*result_ptr = result;            //INIT_PZVAL(result_ptr);			Z_SET_REFCOUNT_P(result_ptr, 0);			Z_UNSET_ISREF_P(result_ptr);        } else {            result_ptr = EG(uninitialized_zval_ptr);        }	} else {	#if PHP_VERSION_ID < 50399		result_ptr = zend_get_std_object_handlers()->read_property(object, member, type TSRMLS_CC);	#else			result_ptr = zend_get_std_object_handlers()->read_property(object, member, type, NULL TSRMLS_CC);	#endif	}	if (member == &tmp_member) {		zval_dtor(member);	}	return result_ptr;}
开发者ID:IgorDePaula,项目名称:php-gtk-src,代码行数:50,


示例21: phalcon_array_unset

/** * Unsets zval index from array */int PHALCON_FASTCALL phalcon_array_unset(zval **arr, zval *index, int flags) {	zval *copy;	int exists, copied = 0;	if (Z_TYPE_PP(arr) != IS_ARRAY) {		return 0;	}	if (Z_TYPE_P(index) == IS_NULL) {		ALLOC_INIT_ZVAL(copy);		ZVAL_ZVAL(copy, index, 1, 0);		convert_to_string(copy);		index = copy;		copied = 1;	} else {		if (Z_TYPE_P(index) == IS_BOOL || Z_TYPE_P(index) == IS_DOUBLE) {			ALLOC_INIT_ZVAL(copy);			ZVAL_ZVAL(copy, index, 1, 0);			convert_to_long(copy);			index = copy;			copied = 1;		}	}	if ((flags & PH_SEPARATE) == PH_SEPARATE) {		if (Z_REFCOUNT_PP(arr) > 1) {			zval *new_zv;			Z_DELREF_PP(arr);			ALLOC_ZVAL(new_zv);			INIT_PZVAL_COPY(new_zv, *arr);			*arr = new_zv;			zval_copy_ctor(new_zv);		}	}	if (Z_TYPE_P(index) == IS_STRING) {		exists = zend_hash_del(Z_ARRVAL_PP(arr), Z_STRVAL_P(index), Z_STRLEN_P(index) + 1);	} else {		exists = zend_hash_index_del(Z_ARRVAL_PP(arr), Z_LVAL_P(index));	}	if (copied) {		zval_ptr_dtor(&copy);	}	return exists;}
开发者ID:BlueShark,项目名称:cphalcon,代码行数:51,


示例22: zephir_array_update_zval

/** * @brief Updates value in @a arr at position @a index with @a value * @param[in,out] arr Array * @param index Index * @param[in,out] value Value * @param flags Flags * @return Whether the operation succeeded * @retval @c FAILURE Failure, @a arr is not an array or @a index is of not supported type * @retval @c SUCCESS Success * @note @c index will be handled as follows: @c NULL is treated as an empty string, @c double values are cast to @c integer, @c bool or @c resource are treated as @c integer * @throw @c E_WARNING if @a offset is not a scalar or @c arr is not an array * * Equivalent to <tt>$arr[$index] = $value</tt> in PHP. * Flags may be a bitwise OR of the following values: * @arg @c PH_CTOR: create a copy of @a value and work with that copy; @c *value will be updated with the newly constructed value * @arg @c PH_SEPARATE: separate @a arr if its reference count is greater than 1; @c *arr will contain the separated version * @arg @c PH_COPY: increment the reference count on @c **value */int zephir_array_update_zval(zval **arr, zval *index, zval **value, int flags) {    HashTable *ht;    if (Z_TYPE_PP(arr) != IS_ARRAY) {        zend_error(E_WARNING, "Cannot use a scalar value as an array (2)");        return FAILURE;    }    if ((flags & PH_CTOR) == PH_CTOR) {        zval *new_zv;        Z_DELREF_PP(value);        ALLOC_ZVAL(new_zv);        INIT_PZVAL_COPY(new_zv, *value);        *value = new_zv;        zval_copy_ctor(new_zv);    }    if ((flags & PH_SEPARATE) == PH_SEPARATE) {        SEPARATE_ZVAL_IF_NOT_REF(arr);    }    if ((flags & PH_COPY) == PH_COPY) {        Z_ADDREF_PP(value);    }    ht = Z_ARRVAL_PP(arr);    switch (Z_TYPE_P(index)) {    case IS_NULL:        return zend_symtable_update(ht, "", 1, value, sizeof(zval*), NULL);    case IS_DOUBLE:        return zend_hash_index_update(ht, (ulong)Z_DVAL_P(index), value, sizeof(zval*), NULL);    case IS_LONG:    case IS_BOOL:    case IS_RESOURCE:        return zend_hash_index_update(ht, Z_LVAL_P(index), value, sizeof(zval*), NULL);    case IS_STRING:        return zend_symtable_update(ht, Z_STRVAL_P(index), Z_STRLEN_P(index)+1, value, sizeof(zval*), NULL);    default:        zend_error(E_WARNING, "Illegal offset type");        return FAILURE;    }}
开发者ID:golovanov,项目名称:php-ext-zendxml,代码行数:66,


示例23: new_php_embed_value

VALUE new_php_embed_value(zval *value) {    VALUE new_value;    zval* new_zval;    VALUE arg = INT2FIX(0);    ALLOC_ZVAL(new_zval);    *new_zval = *value;    zval_copy_ctor(new_zval);    INIT_PZVAL(new_zval);    new_value = php_value_alloc(cPhpEmbedValue);    set_zval(new_value, new_zval);    return new_value;}
开发者ID:Epictetus,项目名称:php_embed,代码行数:16,


示例24: apache_php_module_hook

/* {{{ apache_php_module_hook */int apache_php_module_hook(request_rec *r, php_handler *handler, zval **ret){	zend_file_handle file_handle;	zval *req;    char *tmp;#if PHP_SIGCHILD	signal(SIGCHLD, sigchld_handler);#endif    if(AP(current_hook) == AP_RESPONSE) {        if (php_request_startup_for_hook() == FAILURE)            return FAILURE;    }    else {        if (php_request_startup_for_hook() == FAILURE)            return FAILURE;    }    req = php_apache_request_new(r);    php_register_variable_ex("request", req, PG(http_globals)[TRACK_VARS_SERVER]);    switch(handler->type) {        case AP_HANDLER_TYPE_FILE:            php_register_variable("PHP_SELF_HOOK", handler->name, PG(http_globals)[TRACK_VARS_SERVER]);	        memset(&file_handle, 0, sizeof(file_handle));	        file_handle.type = ZEND_HANDLE_FILENAME;	        file_handle.filename = handler->name;	        (void) php_execute_simple_script(&file_handle, ret);            break;        case AP_HANDLER_TYPE_METHOD:            if( (tmp = strstr(handler->name, "::")) != NULL &&  *(tmp+2) != '/0' ) {                zval *class;                zval *method;                *tmp = '/0';                ALLOC_ZVAL(class);                ZVAL_STRING(class, handler->name, 1);                ALLOC_ZVAL(method);                ZVAL_STRING(method, tmp +2, 1);                *tmp = ':';                call_user_function_ex(EG(function_table), &class, method, ret, 0, NULL, 0, NULL);                zval_dtor(class);                zval_dtor(method);            }            else {
开发者ID:chosen1,项目名称:php-src,代码行数:46,


示例25: phalcon_array_unset_long

/** * Unsets long index from array */int PHALCON_FASTCALL phalcon_array_unset_long(zval **arr, unsigned long index, int flags) {	if (Z_TYPE_PP(arr) != IS_ARRAY) {		return 0;	}	if ((flags & PH_SEPARATE) == PH_SEPARATE) {		if (Z_REFCOUNT_PP(arr) > 1) {			zval *new_zv;			Z_DELREF_PP(arr);			ALLOC_ZVAL(new_zv);			INIT_PZVAL_COPY(new_zv, *arr);			*arr = new_zv;			zval_copy_ctor(new_zv);		}	}	return zend_hash_index_del(Z_ARRVAL_PP(arr), index);}
开发者ID:BlueShark,项目名称:cphalcon,代码行数:22,


示例26: phalcon_array_append

/** * Push one or more elements onto the end of an array */int phalcon_array_append(zval **arr, zval *value, int flags TSRMLS_DC){	if (Z_TYPE_PP(arr) == IS_ARRAY) {		if((flags & PH_SEPARATE) == PH_SEPARATE){			if (Z_REFCOUNT_PP(arr) > 1) {				zval *new_zv;				Z_DELREF_PP(arr);				ALLOC_ZVAL(new_zv);				INIT_PZVAL_COPY(new_zv, *arr);				*arr = new_zv;				zval_copy_ctor(new_zv);			}		}		Z_ADDREF_P(value);		return add_next_index_zval(*arr, value);	} else {		php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Cannot use a scalar value as an array");	}	return FAILURE;}
开发者ID:fatihzkaratana,项目名称:cphalcon,代码行数:22,


示例27: pthreads_read_property

/* {{ reads a property from a thread, wherever it is available */zval * pthreads_read_property (PTHREADS_READ_PROPERTY_PASSTHRU_D) {	zval *value = NULL, *mstring = NULL;	PTHREAD pthreads = PTHREADS_FETCH_FROM(object);		if (Z_TYPE_P(member) != IS_STRING) {		ALLOC_ZVAL(mstring);		*mstring = *member;		zval_copy_ctor(			mstring		);		INIT_PZVAL(mstring);		zend_try {			convert_to_string(mstring);		} zend_end_try();		member = mstring;#if PHP_VERSION_ID > 50399		key = NULL;#endif	}
开发者ID:MikiRobot,项目名称:pthreads,代码行数:20,


示例28: mongo_util_hash_copy_to_np

void mongo_util_hash_copy_to_np(void *pDest) {  zval **p = (zval**)pDest;  zval *temp = *p;  ALLOC_ZVAL(*p);  memcpy(*p, temp, sizeof(zval));  INIT_PZVAL(*p);  switch(Z_TYPE_PP(p)) {  case IS_STRING: {    Z_STRVAL_PP(p) = estrndup(Z_STRVAL_P(temp), Z_STRLEN_P(temp));    break;  }  case IS_ARRAY: {    TSRMLS_FETCH();    mongo_util_hash_to_zval(p, &temp TSRMLS_CC);    break;  }  }}
开发者ID:117311730,项目名称:PHP,代码行数:20,


示例29: PHP_METHOD

/** * Adds an option to the current options * * @param array $option * @return $this */PHP_METHOD(Phalcon_Forms_Element_Select, addOption){	zval **option, *values, *tmp;	phalcon_fetch_params_ex(1, 0, &option);	PHALCON_ENSURE_IS_ARRAY(option);	values = phalcon_fetch_nproperty_this(getThis(), SL("_optionsValues"), PH_NOISY TSRMLS_CC);		ALLOC_ZVAL(tmp);	if (Z_TYPE_P(values) != IS_ARRAY) {		MAKE_COPY_ZVAL(option, tmp);	}	else {		add_function(tmp, *option, values TSRMLS_CC);	}	Z_SET_REFCOUNT_P(tmp, 0);	phalcon_update_property_this(getThis(), SL("_optionsValues"), tmp TSRMLS_CC);	RETURN_THISW();}
开发者ID:100851766,项目名称:cphalcon,代码行数:27,


示例30: yaf_config_ini_zval_deep_copy

/* {{{ static void yaf_config_ini_zval_deep_copy(zval **p) */static void yaf_config_ini_zval_deep_copy(zval **p) {	zval *value;	ALLOC_ZVAL(value);	*value = **p;	switch (Z_TYPE_PP(p)) {		case IS_ARRAY:			{				array_init(value);				zend_hash_copy(Z_ARRVAL_P(value), Z_ARRVAL_PP(p),						(copy_ctor_func_t)yaf_config_ini_zval_deep_copy, NULL, sizeof(zval *));			}			break;		default:			zval_copy_ctor(value);			Z_TYPE_P(value) = Z_TYPE_PP(p);	}	INIT_PZVAL(value);	*p = value;}
开发者ID:WhiteSpace-Strippers,项目名称:php-yaf,代码行数:23,



注:本文中的ALLOC_ZVAL函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ ALL_LIST_ELEMENTS函数代码示例
C++ ALLOC_STRING函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。