php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_constants.h File Reference
#include "zend_globals.h"

Go to the source code of this file.

Data Structures

struct  _zend_constant
 

Macros

#define CONST_CS   0 /* No longer used -- always case sensitive */
 
#define CONST_PERSISTENT   (1<<0) /* Persistent */
 
#define CONST_NO_FILE_CACHE   (1<<1) /* Can't be saved in file cache */
 
#define CONST_DEPRECATED   (1<<2) /* Deprecated */
 
#define CONST_OWNED   (1<<3) /* constant should be destroyed together with class */
 
#define PHP_USER_CONSTANT   0x7fffff /* a constant defined in user space */
 
#define ZEND_CONSTANT_FLAGS(c)
 
#define ZEND_CONSTANT_MODULE_NUMBER(c)
 
#define ZEND_CONSTANT_SET_FLAGS(c, _flags, _module_number)
 
#define REGISTER_NULL_CONSTANT(name, flags)
 
#define REGISTER_BOOL_CONSTANT(name, bval, flags)
 
#define REGISTER_LONG_CONSTANT(name, lval, flags)
 
#define REGISTER_DOUBLE_CONSTANT(name, dval, flags)
 
#define REGISTER_STRING_CONSTANT(name, str, flags)
 
#define REGISTER_STRINGL_CONSTANT(name, str, len, flags)
 
#define REGISTER_NS_NULL_CONSTANT(ns, name, flags)
 
#define REGISTER_NS_BOOL_CONSTANT(ns, name, bval, flags)
 
#define REGISTER_NS_LONG_CONSTANT(ns, name, lval, flags)
 
#define REGISTER_NS_DOUBLE_CONSTANT(ns, name, dval, flags)
 
#define REGISTER_NS_STRING_CONSTANT(ns, name, str, flags)
 
#define REGISTER_NS_STRINGL_CONSTANT(ns, name, str, len, flags)
 
#define REGISTER_MAIN_NULL_CONSTANT(name, flags)
 
#define REGISTER_MAIN_BOOL_CONSTANT(name, bval, flags)
 
#define REGISTER_MAIN_LONG_CONSTANT(name, lval, flags)
 
#define REGISTER_MAIN_DOUBLE_CONSTANT(name, dval, flags)
 
#define REGISTER_MAIN_STRING_CONSTANT(name, str, flags)
 
#define REGISTER_MAIN_STRINGL_CONSTANT(name, str, len, flags)
 
#define ZEND_CONSTANT_DTOR   free_zend_constant
 

Typedefs

typedef struct _zend_constant zend_constant
 

Functions

void clean_module_constants (int module_number)
 
void free_zend_constant (zval *zv)
 
void zend_startup_constants (void)
 
void zend_register_standard_constants (void)
 
ZEND_API bool zend_verify_const_access (zend_class_constant *c, zend_class_entry *ce)
 
ZEND_API zvalzend_get_constant (zend_string *name)
 
ZEND_API zend_constantzend_get_constant_ptr (zend_string *name)
 
ZEND_API zvalzend_get_constant_str (const char *name, size_t name_len)
 
ZEND_API zvalzend_get_constant_ex (zend_string *name, zend_class_entry *scope, uint32_t flags)
 
ZEND_API zvalzend_get_class_constant_ex (zend_string *class_name, zend_string *constant_name, zend_class_entry *scope, uint32_t flags)
 
ZEND_API void zend_register_bool_constant (const char *name, size_t name_len, bool bval, int flags, int module_number)
 
ZEND_API void zend_register_null_constant (const char *name, size_t name_len, int flags, int module_number)
 
ZEND_API void zend_register_long_constant (const char *name, size_t name_len, zend_long lval, int flags, int module_number)
 
ZEND_API void zend_register_double_constant (const char *name, size_t name_len, double dval, int flags, int module_number)
 
ZEND_API void zend_register_string_constant (const char *name, size_t name_len, const char *strval, int flags, int module_number)
 
ZEND_API void zend_register_stringl_constant (const char *name, size_t name_len, const char *strval, size_t strlen, int flags, int module_number)
 
ZEND_API zend_result zend_register_constant (zend_constant *c)
 
ZEND_API zend_constant_zend_get_special_const (const char *name, size_t name_len)
 

Macro Definition Documentation

◆ CONST_CS

#define CONST_CS   0 /* No longer used -- always case sensitive */

Definition at line 25 of file zend_constants.h.

◆ CONST_DEPRECATED

#define CONST_DEPRECATED   (1<<2) /* Deprecated */

Definition at line 28 of file zend_constants.h.

◆ CONST_NO_FILE_CACHE

#define CONST_NO_FILE_CACHE   (1<<1) /* Can't be saved in file cache */

Definition at line 27 of file zend_constants.h.

◆ CONST_OWNED

#define CONST_OWNED   (1<<3) /* constant should be destroyed together with class */

Definition at line 29 of file zend_constants.h.

◆ CONST_PERSISTENT

#define CONST_PERSISTENT   (1<<0) /* Persistent */

Definition at line 26 of file zend_constants.h.

◆ PHP_USER_CONSTANT

#define PHP_USER_CONSTANT   0x7fffff /* a constant defined in user space */

Definition at line 31 of file zend_constants.h.

◆ REGISTER_BOOL_CONSTANT

#define REGISTER_BOOL_CONSTANT ( name,
bval,
flags )
Value:
zend_register_bool_constant((name), sizeof(name)-1, (bval), (flags), module_number)
ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, bool bval, int flags, int module_number)
zend_string * name

Definition at line 50 of file zend_constants.h.

◆ REGISTER_DOUBLE_CONSTANT

#define REGISTER_DOUBLE_CONSTANT ( name,
dval,
flags )
Value:
zend_register_double_constant((name), sizeof(name)-1, (dval), (flags), module_number)
ZEND_API void zend_register_double_constant(const char *name, size_t name_len, double dval, int flags, int module_number)
#define dval(x)

Definition at line 52 of file zend_constants.h.

◆ REGISTER_LONG_CONSTANT

#define REGISTER_LONG_CONSTANT ( name,
lval,
flags )
Value:
zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zend_long lval, int flags, int module_number)

Definition at line 51 of file zend_constants.h.

◆ REGISTER_MAIN_BOOL_CONSTANT

#define REGISTER_MAIN_BOOL_CONSTANT ( name,
bval,
flags )
Value:
zend_register_bool_constant((name), sizeof(name)-1, (bval), (flags), 0)

Definition at line 64 of file zend_constants.h.

◆ REGISTER_MAIN_DOUBLE_CONSTANT

#define REGISTER_MAIN_DOUBLE_CONSTANT ( name,
dval,
flags )
Value:

Definition at line 66 of file zend_constants.h.

◆ REGISTER_MAIN_LONG_CONSTANT

#define REGISTER_MAIN_LONG_CONSTANT ( name,
lval,
flags )
Value:
zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), 0)

Definition at line 65 of file zend_constants.h.

◆ REGISTER_MAIN_NULL_CONSTANT

#define REGISTER_MAIN_NULL_CONSTANT ( name,
flags )
Value:
ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int flags, int module_number)

Definition at line 63 of file zend_constants.h.

◆ REGISTER_MAIN_STRING_CONSTANT

#define REGISTER_MAIN_STRING_CONSTANT ( name,
str,
flags )
Value:
zend_register_string_constant((name), sizeof(name)-1, (str), (flags), 0)
ZEND_API void zend_register_string_constant(const char *name, size_t name_len, const char *strval, int flags, int module_number)

Definition at line 67 of file zend_constants.h.

◆ REGISTER_MAIN_STRINGL_CONSTANT

#define REGISTER_MAIN_STRINGL_CONSTANT ( name,
str,
len,
flags )
Value:
zend_register_stringl_constant((name), sizeof(name)-1, (str), (len), (flags), 0)
size_t len
Definition apprentice.c:174
ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len, const char *strval, size_t strlen, int flags, int module_number)

Definition at line 68 of file zend_constants.h.

◆ REGISTER_NS_BOOL_CONSTANT

#define REGISTER_NS_BOOL_CONSTANT ( ns,
name,
bval,
flags )
Value:
zend_register_bool_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (bval), (flags), module_number)
#define ZEND_NS_NAME(ns, name)
Definition zend_API.h:67

Definition at line 57 of file zend_constants.h.

◆ REGISTER_NS_DOUBLE_CONSTANT

#define REGISTER_NS_DOUBLE_CONSTANT ( ns,
name,
dval,
flags )
Value:
zend_register_double_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (dval), (flags), module_number)

Definition at line 59 of file zend_constants.h.

◆ REGISTER_NS_LONG_CONSTANT

#define REGISTER_NS_LONG_CONSTANT ( ns,
name,
lval,
flags )
Value:
zend_register_long_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (lval), (flags), module_number)

Definition at line 58 of file zend_constants.h.

◆ REGISTER_NS_NULL_CONSTANT

#define REGISTER_NS_NULL_CONSTANT ( ns,
name,
flags )
Value:
zend_register_null_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (flags), module_number)

Definition at line 56 of file zend_constants.h.

◆ REGISTER_NS_STRING_CONSTANT

#define REGISTER_NS_STRING_CONSTANT ( ns,
name,
str,
flags )
Value:
zend_register_string_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (str), (flags), module_number)

Definition at line 60 of file zend_constants.h.

◆ REGISTER_NS_STRINGL_CONSTANT

#define REGISTER_NS_STRINGL_CONSTANT ( ns,
name,
str,
len,
flags )
Value:
zend_register_stringl_constant(ZEND_NS_NAME(ns, name), sizeof(ZEND_NS_NAME(ns, name))-1, (str), (len), (flags), module_number)

Definition at line 61 of file zend_constants.h.

◆ REGISTER_NULL_CONSTANT

#define REGISTER_NULL_CONSTANT ( name,
flags )
Value:
zend_register_null_constant((name), sizeof(name)-1, (flags), module_number)

Definition at line 49 of file zend_constants.h.

◆ REGISTER_STRING_CONSTANT

#define REGISTER_STRING_CONSTANT ( name,
str,
flags )
Value:
zend_register_string_constant((name), sizeof(name)-1, (str), (flags), module_number)

Definition at line 53 of file zend_constants.h.

◆ REGISTER_STRINGL_CONSTANT

#define REGISTER_STRINGL_CONSTANT ( name,
str,
len,
flags )
Value:
zend_register_stringl_constant((name), sizeof(name)-1, (str), (len), (flags), module_number)

Definition at line 54 of file zend_constants.h.

◆ ZEND_CONSTANT_DTOR

#define ZEND_CONSTANT_DTOR   free_zend_constant

Definition at line 104 of file zend_constants.h.

◆ ZEND_CONSTANT_FLAGS

#define ZEND_CONSTANT_FLAGS ( c)
Value:
(Z_CONSTANT_FLAGS((c)->value) & 0xff)
#define Z_CONSTANT_FLAGS(zval)
Definition zend_types.h:692
value

Definition at line 38 of file zend_constants.h.

◆ ZEND_CONSTANT_MODULE_NUMBER

#define ZEND_CONSTANT_MODULE_NUMBER ( c)
Value:
(Z_CONSTANT_FLAGS((c)->value) >> 8)

Definition at line 41 of file zend_constants.h.

◆ ZEND_CONSTANT_SET_FLAGS

#define ZEND_CONSTANT_SET_FLAGS ( c,
_flags,
_module_number )
Value:
do { \
Z_CONSTANT_FLAGS((c)->value) = \
((_flags) & 0xff) | ((_module_number) << 8); \
} while (0)

Definition at line 44 of file zend_constants.h.

Typedef Documentation

◆ zend_constant

typedef struct _zend_constant zend_constant

Function Documentation

◆ _zend_get_special_const()

ZEND_API zend_constant * _zend_get_special_const ( const char * name,
size_t name_len )

Definition at line 203 of file zend_constants.c.

◆ clean_module_constants()

void clean_module_constants ( int module_number)

Definition at line 97 of file zend_constants.c.

◆ free_zend_constant()

void free_zend_constant ( zval * zv)

Definition at line 40 of file zend_constants.c.

◆ zend_get_class_constant_ex()

ZEND_API zval * zend_get_class_constant_ex ( zend_string * class_name,
zend_string * constant_name,
zend_class_entry * scope,
uint32_t flags )

Prevent accessing trait constants directly on cases like \defined() or \constant(), etc.

Definition at line 295 of file zend_constants.c.

◆ zend_get_constant()

ZEND_API zval * zend_get_constant ( zend_string * name)

Definition at line 286 of file zend_constants.c.

◆ zend_get_constant_ex()

ZEND_API zval * zend_get_constant_ex ( zend_string * name,
zend_class_entry * scope,
uint32_t flags )

Definition at line 389 of file zend_constants.c.

◆ zend_get_constant_ptr()

ZEND_API zend_constant * zend_get_constant_ptr ( zend_string * name)

Definition at line 271 of file zend_constants.c.

◆ zend_get_constant_str()

ZEND_API zval * zend_get_constant_str ( const char * name,
size_t name_len )

Definition at line 262 of file zend_constants.c.

◆ zend_register_bool_constant()

ZEND_API void zend_register_bool_constant ( const char * name,
size_t name_len,
bool bval,
int flags,
int module_number )

Definition at line 129 of file zend_constants.c.

◆ zend_register_constant()

ZEND_API zend_result zend_register_constant ( zend_constant * c)

Definition at line 477 of file zend_constants.c.

◆ zend_register_double_constant()

ZEND_API void zend_register_double_constant ( const char * name,
size_t name_len,
double dval,
int flags,
int module_number )

Definition at line 150 of file zend_constants.c.

◆ zend_register_long_constant()

ZEND_API void zend_register_long_constant ( const char * name,
size_t name_len,
zend_long lval,
int flags,
int module_number )

Definition at line 139 of file zend_constants.c.

◆ zend_register_null_constant()

ZEND_API void zend_register_null_constant ( const char * name,
size_t name_len,
int flags,
int module_number )

Definition at line 119 of file zend_constants.c.

◆ zend_register_standard_constants()

void zend_register_standard_constants ( void )

Definition at line 110 of file zend_constants.c.

◆ zend_register_string_constant()

ZEND_API void zend_register_string_constant ( const char * name,
size_t name_len,
const char * strval,
int flags,
int module_number )

Definition at line 172 of file zend_constants.c.

◆ zend_register_stringl_constant()

ZEND_API void zend_register_stringl_constant ( const char * name,
size_t name_len,
const char * strval,
size_t strlen,
int flags,
int module_number )

Definition at line 161 of file zend_constants.c.

◆ zend_startup_constants()

void zend_startup_constants ( void )

Definition at line 102 of file zend_constants.c.

◆ zend_verify_const_access()

ZEND_API bool zend_verify_const_access ( zend_class_constant * c,
zend_class_entry * ce )

Definition at line 234 of file zend_constants.c.