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

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

51自学网 2021-06-03 11:57:24
  C++
这篇教程C++ zend_read_property函数代码示例写得很实用,希望能帮到您。

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

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

示例1: PHP_METHOD

PHP_METHOD(SolrCollapseFunction, __construct){    long int index = SOLR_UNIQUE_FUNCTION_INDEX();    uint nSize = SOLR_INITIAL_HASH_TABLE_SIZE;    solr_function_t *solr_function_dest = NULL;    solr_function_t solr_function;    zval *index_prop, *zvfield = NULL;    solr_char_t *param_name = (solr_char_t *)"field";    int param_name_len = sizeof("field");    solr_string_t field_str;    solr_char_t *field_name = NULL;    int field_name_len = 0;    memset(&solr_function, 0, sizeof(solr_function_t));    if (zend_hash_index_update(SOLR_GLOBAL(functions),index,(void *) &solr_function, sizeof(solr_function_t), (void **) &solr_function_dest) == FAILURE)    {        php_error_docref(NULL TSRMLS_CC, E_ERROR, "Error while registering query parameters in HashTable");        return ;    }    index_prop = zend_read_property(Z_OBJCE_P(getThis()), getThis(), SOLR_INDEX_PROPERTY_NAME, sizeof(SOLR_INDEX_PROPERTY_NAME) - 1, 1 TSRMLS_CC);    Z_LVAL_P(index_prop) = index;    solr_function_dest->function_index = index;    solr_function_dest->name = (solr_char_t *)"collapse";    solr_function_dest->name_length = sizeof(solr_function_dest->name);    /* Allocated memory for the params HashTable using fast cache for HashTables */    ALLOC_HASHTABLE(solr_function_dest->params);    zend_hash_init(solr_function_dest->params, nSize, NULL, (dtor_func_t) solr_string_free_ex, SOLR_FUNCTIONS_PERSISTENT);    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &field_name, &field_name_len) == FAILURE)    {        php_error_docref(NULL TSRMLS_CC, E_ERROR, "Error Parsing Parameters");        return;    }    if (field_name_len > 0 ) {        memset(&field_str, 0, sizeof(solr_string_t));        solr_string_set(&field_str, (solr_char_t *)field_name, field_name_len);        if(zend_hash_update(solr_function_dest->params, param_name, param_name_len, (void **)&field_str, sizeof(solr_string_t), NULL) == FAILURE)        {            php_error_docref(NULL TSRMLS_CC, E_ERROR, "Error assigning field");        }    }}
开发者ID:marcosptf,项目名称:pecl-search_engine-solr,代码行数:50,


示例2: PHP_METHOD

/*{{{ public Fool_Application::run(void) */PHP_METHOD(fool_application,run){	zval* response;	zval* dispatcher;	zval* self = getThis();	dispatcher = zend_read_property(fool_application_ce,self,ZEND_STRL(FOOL_APPLICATION_PROPERTY_NAME_DISPATCHER),1 TSRMLS_CC);	if((response = fool_dispatcher_dispatch(dispatcher TSRMLS_CC))){		RETURN_ZVAL(response,1,1);	}	RETURN_FALSE;}
开发者ID:jasonshaw,项目名称:FoolPHP,代码行数:16,


示例3: PHP_METHOD

/** {{{ public ZePageSet::prev() */PHP_METHOD(ze_pageset, prev) {	zval * self        = NULL;	zval * end_row      = NULL;	zval * current     = NULL;	int    pre_page     = 0;	self = getThis();	current = zend_read_property(ze_pageset_ce, self, ZEND_STRL(ZE_CURRENT), 0 TSRMLS_CC);	pre_page = Z_LVAL_P(current) - 1;	pre_page = (pre_page >= 1) ? pre_page : 1;	RETURN_LONG(pre_page);}
开发者ID:eixom,项目名称:zoeeyphp,代码行数:16,


示例4: PHP_METHOD

PHP_METHOD(air_mysql_waiter, step_2) {	AIR_INIT_THIS;	zval *services = zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL("_services"), 0 TSRMLS_CC);	zval *responses = zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL("_responses"), 0 TSRMLS_CC);	zval *context = zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL("_context"), 0 TSRMLS_CC);	zval *m2s = air_arr_find(context, ZEND_STRS("m2s"));	zval *reads = air_arr_find(context, ZEND_STRS("reads"));	zval *waited = air_arr_find(context, ZEND_STRS("waited"));	zval *processed = air_arr_find(context, ZEND_STRS("processed"));	zval *step = air_arr_find(context, ZEND_STRS("step"));	zend_class_entry *mysqli_ce = air_get_ce(ZEND_STRL("mysqli") TSRMLS_CC);	ulong idx;	char *key;	int key_len;	zval *mysqli;	AIR_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(reads), idx, key, key_len, mysqli){		zval *service_id = air_arr_idx_find(m2s, air_mysqli_get_id(mysqli TSRMLS_CC));		zval *service = air_arr_idx_find(services, Z_LVAL_P(service_id));		zval *mysql = zend_read_property(air_async_service_ce, service, ZEND_STRL("_request"), 0 TSRMLS_CC);		zval **trigger_params[2];		zval *event;		MAKE_STD_ZVAL(event);		zval *event_params;		MAKE_STD_ZVAL(event_params);		array_init(event_params);		Z_ADDREF_P(mysqli);		add_next_index_zval(event_params, mysqli);		zval *mysqli_result = NULL;		if(air_mysqli_get_errno(mysqli TSRMLS_CC)){			ZVAL_STRING(event, "error", 1);		}else{			ZVAL_STRING(event, "success", 1);			air_call_method(&mysqli, mysqli_ce, NULL, ZEND_STRL("reap_async_query"), &mysqli_result, 0, NULL TSRMLS_CC);			Z_ADDREF_P(mysqli_result);			add_next_index_zval(event_params, mysqli_result);		}		trigger_params[0] = &event;		trigger_params[1] = &event_params;		zval *results = NULL;		air_call_method(&mysql, air_mysql_ce, NULL, ZEND_STRL("trigger"), &results, 2, trigger_params TSRMLS_CC);		if(results){			add_index_zval(responses, Z_LVAL_P(service_id), results);		}else{			php_error(E_WARNING, "error on trigger event %s with no results", Z_STRVAL_P(event));		}		zend_hash_index_del(Z_ARRVAL_P(services), Z_LVAL_P(service_id));		zval_ptr_dtor(&event);		zval_ptr_dtor(&event_params);		if(mysqli_result){			zval_ptr_dtor(&mysqli_result);		}		zval *mysql_config = zend_read_property(air_mysql_ce, mysql, ZEND_STRL("_config"), 0 TSRMLS_CC);		zval *mode = zend_read_property(air_mysql_ce, mysql, ZEND_STRL("_mode"), 0 TSRMLS_CC);		zval **release_params[3] = {&mysqli, &mysql_config, &mode};		air_call_static_method(air_mysql_keeper_ce, "release", NULL, 3, release_params);	}AIR_HASH_FOREACH_END();
开发者ID:wukezhan,项目名称:air,代码行数:57,


示例5: activerecord_model_magic_set

zval * activerecord_model_magic_set( zval * model, char * name, int name_len, zval * value ){    zval ** alias, * retval = NULL;    if( zend_hash_find( Z_ARRVAL_P(zend_read_static_property(activerecord_model_ce, "alias_attribute", 15, 0 TSRMLS_CC)), name, name_len, (void**)&alias ) == SUCCESS )    {        efree( name );        emalloc( name, sizeof( Z_STRVAL_PP(alias) ) );        strncpy( name, Z_STRVAL_PP(alias), Z_STRLEN_PP(alias) );        name_len = Z_STRLEN_PP(alias);    }    else    {        char *method_name;        emalloc( method_name, sizeof(name)+4 );        strcpy( method_name, "set_" );        strcat( method_name, name );        if( activerecord_model_array_search( zend_read_property( activerecord_model_ce, this_ptr, "setters", 7, 0 TSRMLS_CC ), method_name) )        {            zend_call_method( &this_ptr, activerecord_model_ce, NULL, method_name, sizeof(method_name), &retval, 0, NULL, NULL TSRMLS_CC );            efree( name );            RETURN_ZVAL( retval, 0, 0 );        }    }    if( zend_hash_find( Z_ARRVAL_P(zend_read_property(activerecord_model_ce, model, "attributes", 10, 0 TSRMLS_CC)), name, name_len ) == SUCCESS )    {        retval = activerecord_model_assign_attribute( model, name, name_len, value );    }    efree( name );    if( retval == NULL );    // throw new exception    RETURN_ZVAL( retval, 0, 0 );}
开发者ID:roeitell,项目名称:php-activerecord-plusplus,代码行数:36,


示例6: PHP_METHOD

PHP_METHOD(dataserv, insdata) {	int i=0, fstart=1, fend=1;	char * table;	zval * self = getThis();	zval * fields;	table = Z_STRVAL_P(zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL("table"), 0 TSRMLS_CC));	fstart = Z_LVAL_P(zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL("start"), 0 TSRMLS_CC));	fend = Z_LVAL_P(zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL("end"), 0 TSRMLS_CC));	fields = zend_read_property(Z_OBJCE_P(self), self, ZEND_STRL("fields"), 0 TSRMLS_CC);	FILE * fp = NULL;	char path[1024]={0x00};	sprintf(path, "%s.sql", table);	fp = VCWD_FOPEN( path, "ab+" );	if( fp == NULL )	{		php_printf("Open file %s fail:%d./n", path, errno );		return;	}	fend = fstart+fend;	for( i = fstart ; i <= fend; ++ i )	{		char *output;		output = (char *)emalloc(1024 * 100 * sizeof(char));		memset(output, 0x00, 1024 * 100 * sizeof(char));		getfields(fields, output);		fprintf(fp,"%s/n",output);		efree(output);		if(i%100 == 0) printf("has %d insert into the files./n", i);	}//	printf("LOAD DATA INFILE '$datadir' INTO TABLE $tablename FIELDS TERMINATED BY ',' ENCLOSED BY '/"' LINES STARTING BY '//n';/n");	fclose(fp);}
开发者ID:justpaybank,项目名称:dataserv,代码行数:36,


示例7: riak_bucket_local_or_client_setting

/* helper method for fetching settings like r, rw etc. either from client or from bucket */PHPAPI long riak_bucket_local_or_client_setting(zval *client_instance, zval *bucket_instance, long user_value, char *setting_key, int setting_key_len TSRMLS_DC) {    zval *client_value;    zval *bucket_value;        if (user_value != 0) {        return user_value;    }    client_value = zend_read_property(riak_ce_riakClient, client_instance, setting_key, setting_key_len, 0 TSRMLS_CC);    bucket_value = zend_read_property(riak_ce_riakBucket, bucket_instance, setting_key, setting_key_len, 0 TSRMLS_CC);            if (Z_TYPE_P(bucket_value) == IS_LONG) {        return Z_LVAL_P(bucket_value);    }        if (Z_TYPE_P(client_value) == IS_LONG) {        return Z_LVAL_P(client_value);    }        zend_error(E_WARNING, "Setting neither on client nor bucket found, using default value 0");        return 0;}
开发者ID:maxbeutel,项目名称:ext.riak,代码行数:25,


示例8: PHP_METHOD

/* {{{ proto array Riak/MapReduce/Phase/MapPhase->toArray()Convert this phase into an array */PHP_METHOD(Riak_MapReduce_Phase_MapPhase, toArray){    zval *zarray, *zfuncarray, *zfunc, *zarg, zname;    zend_bool keep;    MAKE_STD_ZVAL(zarray);    array_init(zarray);    MAKE_STD_ZVAL(zfuncarray);    zfunc = zend_read_property(riak_mr_mapphase_ce, getThis(), "function", sizeof("function")-1, 1 TSRMLS_CC);    ZVAL_STRING(&zname, "toArray", 0);    call_user_function(NULL, &zfunc, &zname, zfuncarray, 0, NULL TSRMLS_CC);    keep = Z_BVAL_P(zend_read_property(riak_mr_mapphase_ce, getThis(), "keep", sizeof("keep")-1, 1 TSRMLS_CC));    if (keep) {        add_assoc_bool_ex(zfuncarray, "keep", sizeof("keep"), 1);    }    add_assoc_zval_ex(zarray, "map", sizeof("map"), zfuncarray);    zarg = zend_read_property(riak_mr_mapphase_ce, getThis(), "arg", sizeof("arg")-1, 1 TSRMLS_CC);    if (Z_TYPE_P(zarg) != IS_NULL) {        add_assoc_zval_ex(zarray, "arg", sizeof("arg"), zarg);        zval_addref_p(zarg);    }    RETURN_ZVAL(zarray, 0, 1);}
开发者ID:FabioBatSilva,项目名称:php_riak,代码行数:26,


示例9: money_handler_compare_objects

static int money_handler_compare_objects(zval *object1, zval *object2){	zval *amount1, *amount2, *currency1, *currency2;	long compare_result;	currency1 = zend_read_property(Z_OBJCE_P(object1), object1, MONEY_PROP_CURRENCY_WS, 0);	currency2 = zend_read_property(Z_OBJCE_P(object2), object2, MONEY_PROP_CURRENCY_WS, 0);	if ((compare_result = Z_OBJ_HANDLER_P(currency1, compare_objects)(currency1, currency2)) != 0) {		zend_throw_exception(CurrencyMismatchException_ce, "Currencies don't match", 0);		return compare_result;	}	amount1 = zend_read_property(Z_OBJCE_P(object1), object1, MONEY_PROP_AMOUNT_WS, 0);	amount2 = zend_read_property(Z_OBJCE_P(object2), object2, MONEY_PROP_AMOUNT_WS, 0);	if (Z_LVAL_P(amount1) == Z_LVAL_P(amount2)) {		return 0;	} else if(Z_LVAL_P(amount1) < Z_LVAL_P(amount2)) {		return -1;	}	return 1;}
开发者ID:Peekmo,项目名称:money,代码行数:24,


示例10: PHP_METHOD

PHP_METHOD(Money, extractPercentage){	long percentage;	double result;	zval *new_money_percentage, *amount, *new_money_subtotal;	if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &percentage) == FAILURE) {		return;	}	ALLOC_INIT_ZVAL(new_money_percentage);ALLOC_INIT_ZVAL(new_money_subtotal);	amount = zend_read_property(money_ce, getThis(), MONEY_PROP_AMOUNT_WS, 0);	result = Z_LVAL_P(amount) / (100 + percentage) * percentage;	CREATE_NEW_MONEY_OBJ(new_money_percentage, zend_dval_to_lval(result), zend_read_property(money_ce, getThis(), MONEY_PROP_CURRENCY_WS, 0))	array_init(return_value);	add_assoc_zval(return_value, "percentage", new_money_percentage);	money_handler_do_operation(ZEND_SUB, new_money_subtotal, getThis(), new_money_percentage);	add_assoc_zval(return_value, "subtotal", new_money_subtotal);}
开发者ID:Peekmo,项目名称:money,代码行数:24,


示例11: PHP_METHOD

/** {{{ public ZeStatus::getName() */PHP_METHOD(ze_status, getName) {	zval * self        = NULL;	zval * name        = NULL;	self = getThis();	name = zend_read_property(ze_status_ce, self, ZEND_STRL(ZE_NAME), 1 TSRMLS_CC);		if (name) {		RETURN_ZVAL(name, 1, 0);	}	RETURN_NULL();}
开发者ID:eixom,项目名称:zoeeyphp,代码行数:17,


示例12: websocket_handshake

static int websocket_handshake(http_client *client){    //HTTP/1.1 101 Switching Protocols/r/nUpgrade: websocket/r/nConnection: Upgrade/r/nSec-WebSocket-Accept: %s/r/nSec-WebSocket-Version: %s/r/nKeepAlive: off/r/nContent-Length: 0/r/nServer: ZWebSocket/r/n    TSRMLS_FETCH_FROM_CTX(sw_thread_ctx ? sw_thread_ctx : NULL);    zval *header = zend_read_property(swoole_http_request_class_entry_ptr, client->zrequest, ZEND_STRL("header"), 1 TSRMLS_CC);    HashTable *ht = Z_ARRVAL_P(header);    zval **pData;    if(zend_hash_find(ht, ZEND_STRS("sec-websocket-key") , (void **) &pData) == FAILURE) {        php_error_docref(NULL TSRMLS_CC, E_WARNING, "header no sec-websocket-key");        return SW_ERR;    }    convert_to_string(*pData);//    swTrace("key: %s len:%d/n", Z_STRVAL_PP(pData), Z_STRLEN_PP(pData));    swString *buf = swString_new(256);    swString_append_ptr(buf, ZEND_STRL("HTTP/1.1 101 Switching Protocols/r/n"));    swString_append_ptr(buf, ZEND_STRL("Upgrade: websocket/r/nConnection: Upgrade/r/n"));    swString *shaBuf = swString_new(Z_STRLEN_PP(pData)+36);    swString_append_ptr(shaBuf, Z_STRVAL_PP(pData), Z_STRLEN_PP(pData));    swString_append_ptr(shaBuf, ZEND_STRL(SW_WEBSOCKET_GUID));    char data_str[20];//    bzero(data_str, sizeof(data_str));//    swTrace("sha1 start:%s/n", shaBuf->str);    sha1(shaBuf->str, (unsigned char *) data_str);    char encoded_value[50];    bzero(encoded_value, sizeof(encoded_value));//    swTrace("base64_encode start:%d/n", sizeof(data_str));    swBase64_encode((unsigned char *) data_str, 20, encoded_value);//    swTrace("base64_encode end:%s %d %d/n", encoded_value, encoded_len, strlen(encoded_value));    char _buf[128];    int n = 0;    n = snprintf(_buf, strlen(encoded_value)+25, "Sec-WebSocket-Accept: %s/r/n", encoded_value);//    efree(data_str);//    efree(encoded_value);    swString_free(shaBuf);//    swTrace("accept value: %s/n", _buf);    swString_append_ptr(buf, _buf, n);    swString_append_ptr(buf, ZEND_STRL("Sec-WebSocket-Version: 13/r/n"));    swString_append_ptr(buf, ZEND_STRL("Server: swoole-websocket/r/n/r/n"));    swTrace("websocket header len:%zd/n%s /n", buf->length, buf->str);    int ret = swServer_tcp_send(SwooleG.serv, client->fd, buf->str, buf->length);    swString_free(buf);//    swTrace("handshake send: %d lenght: %d/n", client->fd, ret);    return ret;}
开发者ID:solomylove,项目名称:swoole-src,代码行数:48,


示例13: http_request_on_query_string

static int http_request_on_query_string(php_http_parser *parser, const char *at, size_t length){    TSRMLS_FETCH_FROM_CTX(sw_thread_ctx ? sw_thread_ctx : NULL);    http_client *client = parser->data;    char *query = estrndup(at, length);    zval *get;    MAKE_STD_ZVAL(get);    array_init(get);    zend_update_property(swoole_http_request_class_entry_ptr, client->zrequest, ZEND_STRL("get"), get TSRMLS_CC);    sapi_module.treat_data(PARSE_STRING, query, get TSRMLS_CC);    ZEND_SET_SYMBOL(&EG(symbol_table), "_GET", get);    zval *_request = zend_read_property(swoole_http_request_class_entry_ptr, client->zrequest, ZEND_STRL("request"), 1 TSRMLS_CC);    zend_hash_copy(Z_ARRVAL_P(_request), Z_ARRVAL_P(get), NULL, NULL, sizeof(zval));    return 0;}
开发者ID:lord2cc,项目名称:swoole-src,代码行数:17,


示例14: ZEND_METHOD

ZEND_METHOD(exception, __wakeup){	zval value, *pvalue;	zval *object = getThis();	CHECK_EXC_TYPE(ZEND_STR_MESSAGE,  IS_STRING);	CHECK_EXC_TYPE(ZEND_STR_STRING,   IS_STRING);	CHECK_EXC_TYPE(ZEND_STR_CODE,     IS_LONG);	CHECK_EXC_TYPE(ZEND_STR_FILE,     IS_STRING);	CHECK_EXC_TYPE(ZEND_STR_LINE,     IS_LONG);	CHECK_EXC_TYPE(ZEND_STR_TRACE,    IS_ARRAY);	pvalue = zend_read_property(i_get_exception_base(object), object, "previous", sizeof("previous")-1, 1, &value);	if (pvalue && Z_TYPE_P(pvalue) != IS_NULL && (Z_TYPE_P(pvalue) != IS_OBJECT ||			!instanceof_function(Z_OBJCE_P(pvalue), i_get_exception_base(object)) ||			pvalue == object)) {		zend_unset_property(i_get_exception_base(object), object, "previous", sizeof("previous")-1);	}}
开发者ID:WarnerBe,项目名称:php-src,代码行数:17,


示例15: TSRMLS_FETCH

static IPYNotation *get_pinyin_notation(zval *cls){    zval        *pylink;    IPYNotation *pynotation;    TSRMLS_FETCH();    pylink     = zend_read_property(Z_OBJCE_P(cls), cls, ZEND_STRL("_pynotation"), 0 TSRMLS_CC);    pynotation = (IPYNotation *)zend_fetch_resource(&pylink TSRMLS_CC, -1,                     PINYIN_NOTATION_LINK_DESC, NULL, 1, le_pinyin_notation_link);    if (!pynotation) {        php_error_docref(NULL TSRMLS_CC,                         E_WARNING,                         "Wrong resource handler for IPYNotation.");    }    return pynotation;}
开发者ID:naiyue,项目名称:php-pinyin,代码行数:17,


示例16: ZEND_METHOD

//数组覆盖ZEND_METHOD( alinq_class , Concat ){    zval *concat_array;    zend_class_entry *ce;    ce = Z_OBJCE_P(getThis());    zval * reArrVal;    MAKE_STD_ZVAL(reArrVal);    array_init(reArrVal);    zval *dataSource, **tmpns;    ALLOC_INIT_ZVAL(reArrVal);      //持久化分配内存    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &concat_array) == FAILURE) {        return;    }         dataSource = zend_read_property(ce, getThis(), "dataSource", sizeof("dataSource")-1, 0 TSRMLS_DC);        //重新copy一个zval,防止破坏原数据        reArrVal = dataSource;        zval_copy_ctor(reArrVal);        // INIT_PZVAL(reArrVal);    while (zend_hash_get_current_data(Z_ARRVAL_P(concat_array), (void **)&tmpns) == SUCCESS) {        char *key;        uint keylen;        ulong idx;        int type;        zval **ppzval, *tmpcopy;        MAKE_STD_ZVAL(tmpcopy);        type = zend_hash_get_current_key_ex(Z_ARRVAL_P(concat_array), &key, &keylen,&idx, 0, NULL);        //重新copy一个zval,防止破坏原数据        tmpcopy = *tmpns;        zval_copy_ctor(tmpcopy);        // INIT_PZVAL(tmpcopy);        add_assoc_zval(reArrVal, key, tmpcopy);         // zval_dtor(&tmpcopy);        // PHPWRITE(key,keylen);          // RETURN_ZVAL(reArrVal,1,1);         zend_hash_move_forward(Z_ARRVAL_P(concat_array));    }        RETURN_ZVAL(reArrVal,1,1);}
开发者ID:wosiwo,项目名称:clinq,代码行数:46,


示例17: PHP_METHOD

PHP_METHOD(jz_data, key) {	zval *prop;	zend_string *string;	zend_ulong index;	prop = zend_read_property(jz_data_class_entry, getThis(), ZEND_STRL(JZ_DATA_PROPERT_NAME), 1, NULL);	zend_hash_get_current_key(Z_ARRVAL_P(prop), &string, &index);	switch(zend_hash_get_current_key_type(Z_ARRVAL_P(prop))) {		case HASH_KEY_IS_LONG:			RETURN_LONG(index);			break;		case HASH_KEY_IS_STRING:			RETURN_STR(zend_string_copy(string));			break;		default:			RETURN_FALSE;	}}
开发者ID:jonnywang,项目名称:jz,代码行数:18,


示例18: PHP_METHOD

/** {{{ proto public Yaf_Config_Simple::key(void)*/PHP_METHOD(yaf_config_simple, key) {	zval *prop;	zend_string *string;	ulong index;	prop = zend_read_property(yaf_config_simple_ce, getThis(), ZEND_STRL(YAF_CONFIG_PROPERT_NAME), 1, NULL);	zend_hash_get_current_key(Z_ARRVAL_P(prop), &string, &index);	switch(zend_hash_get_current_key_type(Z_ARRVAL_P(prop))) {		case HASH_KEY_IS_LONG:			RETURN_LONG(index);			break;		case HASH_KEY_IS_STRING:			RETURN_STR(zend_string_copy(string));			break;		default:			RETURN_FALSE;	}}
开发者ID:cchtw,项目名称:yaf,代码行数:20,


示例19: PHP_METHOD

/** {{{ public ZeRecorder::exec() */PHP_METHOD(ze_recorder, exec) {	zval *   self        = NULL;	zval *   stmt        = NULL;	zval *   success     = NULL;	zval *   row_count    = NULL;	/* call execute */	/* call rowCount */	self = getThis();	stmt = zend_read_property(ze_recorder_ce, self, ZEND_STRL(ZE_STMT), 0 TSRMLS_CC);	do {		if (!stmt || Z_TYPE_P(stmt) != IS_OBJECT) {			ze_error(E_ERROR TSRMLS_CC, "recorder.exec.stmt.not_object");			break;		}		zend_call_method(&stmt, Z_OBJCE_P(stmt), NULL, ZEND_STRL("execute"), &success, 0, NULL, NULL TSRMLS_CC);		if (!success || EG(exception)) {			break;		}		convert_to_boolean(success);		if (Z_BVAL_P(success) == 1) {			zend_call_method(&stmt, NULL, NULL, ZEND_STRL("rowCount"), &row_count, 0, NULL, NULL TSRMLS_CC);		}		zval_dtor(success);		FREE_ZVAL(success);	} while (0);	if (row_count) {		 convert_to_long(row_count);		 RETURN_ZVAL(row_count, 1, 1);	} else {		RETURN_FALSE;	}}
开发者ID:eixom,项目名称:zoeeyphp,代码行数:46,


示例20: zend_read_property

static yaf_view_t *yaf_dispatcher_init_view(yaf_dispatcher_t *dispatcher, zval *tpl_dir, zval *options, yaf_view_t *ptr) /* {{{ */ {	yaf_view_t *view = zend_read_property(yaf_dispatcher_ce,			dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_VIEW), 1, NULL);	if (EXPECTED(IS_OBJECT == Z_TYPE_P(view)			&& instanceof_function(Z_OBJCE_P(view), yaf_view_interface_ce))) {		return view;	}	view = yaf_view_instance(ptr, tpl_dir, options);	if (!view) {		return NULL;	}	zend_update_property(yaf_dispatcher_ce, dispatcher, ZEND_STRL(YAF_DISPATCHER_PROPERTY_NAME_VIEW), view);	zval_ptr_dtor(view);	return view;}
开发者ID:ruolinn,项目名称:yaf,代码行数:19,


示例21: PHP_METHOD

/* {{{ proto MongoDB/WriteResult WriteException::getWriteResult()   Returns the WriteResult from the failed write operation. */PHP_METHOD(WriteException, getWriteResult){	zend_error_handling       error_handling;	zval *writeresult;	zend_replace_error_handling(EH_THROW, phongo_exception_from_phongo_domain(PHONGO_ERROR_INVALID_ARGUMENT), &error_handling TSRMLS_CC);	if (zend_parse_parameters_none() == FAILURE) {		zend_restore_error_handling(&error_handling TSRMLS_CC);		return;	}	zend_restore_error_handling(&error_handling TSRMLS_CC);	writeresult = zend_read_property(php_phongo_writeexception_ce, getThis(), ZEND_STRL("writeResult"), 0 TSRMLS_CC);	RETURN_ZVAL(writeresult, 1, 0);}
开发者ID:christkv,项目名称:phongo,代码行数:21,


示例22: yaf_response_get_header

/** {{{ zval * yaf_response_get_header(yaf_response_t *response, char *name, uint name_len TSRMLS_DC)*/zval * yaf_response_get_header(yaf_response_t *response, char *name, uint name_len TSRMLS_DC) {	zval **ppzval;	zval *zheaders = zend_read_property(yaf_response_ce, response, ZEND_STRL(YAF_RESPONSE_PROPERTY_NAME_HEADER), 1 TSRMLS_CC);	if (IS_ARRAY != Z_TYPE_P(zheaders)) {		return NULL;	}	if (!name_len) {		return zheaders;	}	if (zend_hash_find(Z_ARRVAL_P(zheaders), name, name_len + 1, (void **)&ppzval) == FAILURE) {		return NULL;	}	return *ppzval;}
开发者ID:ZhangHongJi,项目名称:php-yaf,代码行数:21,


示例23: ZEND_METHOD

ZEND_METHOD( myclass , update_get_member ) //在c扩展中操纵PHP对象的成员{    php_printf("我是update_get_member方法:/n");	zval *var;    zend_class_entry *ce;    ce = Z_OBJCE_P(getThis());    if( zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &var) == FAILURE )    {        php_printf("Error/n");        RETURN_NULL();    }    zend_update_property(ce, getThis(), "public_var", sizeof("public_var")-1, var TSRMLS_CC);         var = NULL;         var = zend_read_property(ce, getThis(), "public_var", sizeof("public_var")-1, 0 TSRMLS_CC);    php_var_dump(&var, 1 TSRMLS_CC);     }
开发者ID:hq-cml,项目名称:php_extensions,代码行数:19,


示例24: PHP_METHOD

PHP_METHOD(SpotifyPlaylist, getTrackCreator){	int index;	zval *thisptr = getThis(), tempretval, *spotifyobject;	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index) == FAILURE) {		return;	}	spotifyobject = zend_read_property(spotifyplaylist_ce, thisptr, "spotify", strlen("spotify"), NOISY TSRMLS_CC);	spotifyplaylist_object *p = (spotifyplaylist_object*)zend_object_store_get_object(thisptr TSRMLS_CC);	sp_user *user = sp_playlist_track_creator(p->playlist, index);	if (!user) {		RETURN_FALSE;	}	object_init_ex(return_value, spotifyuser_ce);	SPOTIFY_METHOD2(SpotifyUser, __construct, &tempretval, return_value, spotifyobject, user);}
开发者ID:DaanMeijer,项目名称:libspotify-php,代码行数:20,



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


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