示例#1
0
Variant f_array_merge(int _argc, CVarRef array1,
                      CArrRef _argv /* = null_array */) {
  getCheckedArray(array1);
  Array ret = Array::Create();
  php_array_merge(ret, arr_array1);
  for (ArrayIter iter(_argv); iter; ++iter) {
    Variant v = iter.second();
    if (!v.isArray()) {
      throw_bad_array_exception();
      return uninit_null();
    }
    CArrRef arr_v = v.asCArrRef();
    php_array_merge(ret, arr_v);
  }
  return ret;
}
示例#2
0
/** {{{ public ZeActiveString::putAll($map)
 */
PHP_METHOD(ze_activestring, putAll) {
    zval * self       = NULL;
    zval * items      = NULL;
    zval * map        = NULL;


    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a"
                            , &map
                            ) == FAILURE) {
        WRONG_PARAM_COUNT;
    }

    self = getThis();

    items = zend_read_property(ze_activestring_ce, self, ZEND_STRL(ZE_ITEMS), 0 TSRMLS_CC);

    php_array_merge(Z_ARRVAL_P(items), Z_ARRVAL_P(map), 0 TSRMLS_CC);

    zend_update_property(ze_activestring_ce, self, ZEND_STRL(ZE_ITEMS), items TSRMLS_CC);

    RETURN_ZVAL(self, 1, 0);
}