1 PHP_FUNCTION(strrev) 2 { 3 ????zend_string *str; 4 ????char *e, *p; 5 ????zend_string *n; 6 ?7 ????if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &str) == FAILURE) { 8 ????????return; 9 ????}10 11 ????n = zend_string_alloc(ZSTR_LEN(str), 0); //开辟新内存(新字符串)12 ????p = ZSTR_VAL(n); // 新字符串启始位置13 14 ????e = ZSTR_VAL(str) + ZSTR_LEN(str); //指向原始字符串结束位置(‘\0‘)15 16 ????while (--e >= ZSTR_VAL(str)) { //ZSTR_VAL(str),原始字符串起始位置17 ????????*p++ = *e;18 ????}19 20 ????*p = ‘\0‘; //字符串结束标志‘\0‘21 22 ????RETVAL_NEW_STR(n);23 }
php内置函数分析之strrev()
原文地址:https://www.cnblogs.com/natian-ws/p/9094858.html