php global variable - yaokun123/php-wiki GitHub Wiki
一些全局变量
一、全局变量php_core_globals(core_globals)(PG宏)
typedef struct _php_core_globals php_core_globals;
# define PG(v) (core_globals.v)
extern ZEND_API struct _php_core_globals core_globals;
struct _php_core_globals {
......
// 6个http相关的全局变量($_POST $_GET $_COOKIE $_SERVER $_ENV $_FILES)
zval http_globals[6];
......
}
/* Track vars */
#define TRACK_VARS_POST 0 // $_POST
#define TRACK_VARS_GET 1 // $_GET
#define TRACK_VARS_COOKIE 2 // $_COOKIE
#define TRACK_VARS_SERVER 3 // $_SERVER
#define TRACK_VARS_ENV 4 // $_ENV
#define TRACK_VARS_FILES 5 // $_FILES
二、全局变量sapi_globals_struct(sapi_globals)(SG宏)
# define SG(v) (sapi_globals.v)
extern SAPI_API sapi_globals_struct sapi_globals;
typedef struct _sapi_globals_struct {
void *server_context;
sapi_request_info request_info;
sapi_headers_struct sapi_headers;
int64_t read_post_bytes;
unsigned char post_read;
unsigned char headers_sent;
zend_stat_t global_stat;
char *default_mimetype;
char *default_charset;
HashTable *rfc1867_uploaded_files;
zend_long post_max_size;
int options;
zend_bool sapi_started;
double global_request_time;
HashTable known_post_content_types;
zval callback_func;
zend_fcall_info_cache fci_cache;
} sapi_globals_struct;
三、全局变量fpm_globals
extern struct fpm_globals_s fpm_globals;
struct fpm_globals_s {
pid_t parent_pid;
int argc;
char **argv;
char *config;
char *prefix;
char *pid;
int running_children;
int error_log_fd;
int log_level;
int listening_socket; /* for this child */
int max_requests; /* for this child */
int is_child;
int test_successful;
int heartbeat;
int run_as_root;
int force_stderr;
int send_config_pipe[2];
};