zval *aa
如果指定aa 为数组,能否将"123" 传给aa

解决方案 »

  1.   

    PHP是弱类型,
    字符串也可以当作数组来操作.
    $aa = 123;
    echo $aa[0];//1
    echo $aa[1];//2
    echo $aa[2];//3至于你这能不能传,得看实际情况.
      

  2.   

    PHP_FUNCTION(searchbinzy) 
    {
    zval *aa
    char *bb;
    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &aa) == FAILURE)
    {
    RETURN_NULL();
    }}
    如果指定aa 为数组,能否将"123" 传给aa[0];"234"给aa[1];
    我不会对zval 操作,看了代码好像zval 有专门的函数操作zval 和 char
    MAKE_STD_ZVAL
    ZVAL_STRING
    Z_ARRVAL_PP
    SESS_ZVAL_STRING_PP
      

  3.   

    zval  这是啥类型呀.
    你首先得清楚.
    再者说,能不能,你自己调试一下就OK了.
      

  4.   

    http://www.yanbin.org/page/2/数组数组在 Zend 内部是用哈希表(HashTable)来存储的,这个哈希表可以使用一系列的 zend_hash_*() 函数来访问。因此我们在创建一个数组时必须先创建一个哈希表,然后再将其保存在 zval.value 容器的 ht 字段中。不过针对数组的创建我们现在另有一套非常方便 API 可供使用。为了创建一个数组,我们可先调用一下 array_init() 函数:.zval *new_array;
    MAKE_STD_ZVAL(new_array);
    array_init(new_array);array_init() 函数总是返回 SUCCESS。要给数组增加一个元素,根据实际需要,我们有 N 个函数可供调用。“表3.8 用于关联数组的 API”、“表3.9 用于索引数组的 API 第一部分”和“表3.10 用于索引数组的 API 第二部分”有这些函数的说明。所有这些函数在调用成功时返回 SUCCESS,在调用失败时返回 FAILURE。