Я написал расширение PHP, которое вызывало стандартную встроенную функцию php_base64_encode()
, например
#include "ext/standard/base64.h"
PHP_FUNCTION(foo_bar) {
char *arg = NULL;
size_t arg_len;
zend_string *strg;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &arg, &arg_len) == FAILURE) {
return;
}
// do something
strg = php_base64_encode("hello", strlen("hello"));
RETURN_STR(strg);
}
Я уже знал, что Makefile
содержит INCLUDES = -I/usr/local/include/php ...
, поэтому компилятор будет знать, гдеext/standard/base64.h
есть.Тем не менее, я задаюсь вопросом, откуда компилятор узнает, где определение php_base64_encode()
.