内置函数分析之array_fill_keys()
Posted natian-ws
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内置函数分析之array_fill_keys()相关的知识,希望对你有一定的参考价值。
1 php_FUNCTION(array_fill_keys) 2 { 3 zval *keys, *val, *entry; 4 5 if (zend_parse_parameters(ZEND_NUM_ARGS(), "az", &keys, &val) == FAILURE) { 6 return; 7 } 8 9 /* Initialize return array */ 10 array_init_size(return_value, zend_hash_num_elements(Z_ARRVAL_P(keys))); 11 12 // 遍历数组keys 13 ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(keys), entry) { 14 ZVAL_DEREF(entry); 15 Z_TRY_ADDREF_P(val); 16 /* 以数组key值为键,val为值。插入返回的数组return_value */ 17 if (Z_TYPE_P(entry) == IS_LONG) { 18 zend_hash_index_update(Z_ARRVAL_P(return_value), Z_LVAL_P(entry), val); 19 } else { 20 zend_string *key = zval_get_string(entry); 21 zend_symtable_update(Z_ARRVAL_P(return_value), key, val); 22 zend_string_release(key); 23 } 24 } ZEND_HASH_FOREACH_END(); 25 }
以上是关于内置函数分析之array_fill_keys()的主要内容,如果未能解决你的问题,请参考以下文章
php内置函数分析之strtoupper()strtolower()
Android 逆向Dalvik 函数抽取加壳 ( 类加载流程分析 | ClassLoader#loadClass 函数分析 | BaseDexClassLoader#findClass 分析 )(代