php chr源码
PHP_FUNCTION(chr)
{
long c;
char temp[2];
if (ZEND_NUM_ARGS() != 1) {
WRONG_PARAM_COUNT;
}
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "l", &c) == FAILURE) {
c = 0;
}
temp[0] = (char)c;
temp[1] = '\0';
RETURN_STRINGL(temp, 1, 1);
}
这个是判断参数是否是1个如果不是一个发出警告
宏
WRONG_PARAM_COUNT
可写成
zend_wrong_param_count(TSRMLS_C);
return;
if (ZEND_NUM_ARGS() != 1) {
WRONG_PARAM_COUNT;
}
我们可以把代码简化成
chr(long c) {
char temp[2];
temp[0] = (char) c;
temp[1] = '\0';
return temp[0];
}
int main(int argc, char** argv) {
long c = 65;
printf("%c", chr(c));
} 所以php chr函数 核心就是 (char)c