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

Go to the source code of this file.

Data Structures

struct  zend_attribute_arg
 
struct  _zend_attribute
 
struct  _zend_internal_attribute
 

Macros

#define ZEND_ATTRIBUTE_TARGET_CLASS   (1<<0)
 
#define ZEND_ATTRIBUTE_TARGET_FUNCTION   (1<<1)
 
#define ZEND_ATTRIBUTE_TARGET_METHOD   (1<<2)
 
#define ZEND_ATTRIBUTE_TARGET_PROPERTY   (1<<3)
 
#define ZEND_ATTRIBUTE_TARGET_CLASS_CONST   (1<<4)
 
#define ZEND_ATTRIBUTE_TARGET_PARAMETER   (1<<5)
 
#define ZEND_ATTRIBUTE_TARGET_ALL   ((1<<6) - 1)
 
#define ZEND_ATTRIBUTE_IS_REPEATABLE   (1<<6)
 
#define ZEND_ATTRIBUTE_FLAGS   ((1<<7) - 1)
 
#define ZEND_ATTRIBUTE_PERSISTENT   (1<<0)
 
#define ZEND_ATTRIBUTE_STRICT_TYPES   (1<<1)
 
#define ZEND_ATTRIBUTE_SIZE(argc)
 

Typedefs

typedef struct _zend_attribute zend_attribute
 
typedef struct _zend_internal_attribute zend_internal_attribute
 

Functions

ZEND_API zend_attributezend_get_attribute (HashTable *attributes, zend_string *lcname)
 
ZEND_API zend_attributezend_get_attribute_str (HashTable *attributes, const char *str, size_t len)
 
ZEND_API zend_attributezend_get_parameter_attribute (HashTable *attributes, zend_string *lcname, uint32_t offset)
 
ZEND_API zend_attributezend_get_parameter_attribute_str (HashTable *attributes, const char *str, size_t len, uint32_t offset)
 
ZEND_API zend_result zend_get_attribute_value (zval *ret, zend_attribute *attr, uint32_t i, zend_class_entry *scope)
 
ZEND_API zend_result zend_get_attribute_object (zval *out, zend_class_entry *attribute_ce, zend_attribute *attribute_data, zend_class_entry *scope, zend_string *filename)
 
ZEND_API zend_stringzend_get_attribute_target_names (uint32_t targets)
 
ZEND_API bool zend_is_attribute_repeated (HashTable *attributes, zend_attribute *attr)
 
ZEND_API zend_internal_attributezend_mark_internal_attribute (zend_class_entry *ce)
 
ZEND_API zend_internal_attributezend_internal_attribute_register (zend_class_entry *ce, uint32_t flags)
 
ZEND_API zend_internal_attributezend_internal_attribute_get (zend_string *lcname)
 
ZEND_API zend_attributezend_add_attribute (HashTable **attributes, zend_string *name, uint32_t argc, uint32_t flags, uint32_t offset, uint32_t lineno)
 
uint32_t zend_attribute_attribute_get_flags (zend_attribute *attr, zend_class_entry *scope)
 
void zend_register_attribute_ce (void)
 
void zend_attributes_shutdown (void)
 

Variables

ZEND_API zend_class_entryzend_ce_attribute
 
ZEND_API zend_class_entryzend_ce_allow_dynamic_properties
 
ZEND_API zend_class_entryzend_ce_sensitive_parameter
 
ZEND_API zend_class_entryzend_ce_sensitive_parameter_value
 
ZEND_API zend_class_entryzend_ce_override
 
ZEND_API zend_class_entryzend_ce_deprecated
 

Macro Definition Documentation

◆ ZEND_ATTRIBUTE_FLAGS

#define ZEND_ATTRIBUTE_FLAGS   ((1<<7) - 1)

Definition at line 33 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_IS_REPEATABLE

#define ZEND_ATTRIBUTE_IS_REPEATABLE   (1<<6)

Definition at line 32 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_PERSISTENT

#define ZEND_ATTRIBUTE_PERSISTENT   (1<<0)

Definition at line 36 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_SIZE

#define ZEND_ATTRIBUTE_SIZE ( argc)
Value:
(sizeof(zend_attribute) + sizeof(zend_attribute_arg) * (argc) - sizeof(zend_attribute_arg))
struct _zend_attribute zend_attribute

Definition at line 39 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_STRICT_TYPES

#define ZEND_ATTRIBUTE_STRICT_TYPES   (1<<1)

Definition at line 37 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_TARGET_ALL

#define ZEND_ATTRIBUTE_TARGET_ALL   ((1<<6) - 1)

Definition at line 31 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_TARGET_CLASS

#define ZEND_ATTRIBUTE_TARGET_CLASS   (1<<0)

Definition at line 25 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_TARGET_CLASS_CONST

#define ZEND_ATTRIBUTE_TARGET_CLASS_CONST   (1<<4)

Definition at line 29 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_TARGET_FUNCTION

#define ZEND_ATTRIBUTE_TARGET_FUNCTION   (1<<1)

Definition at line 26 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_TARGET_METHOD

#define ZEND_ATTRIBUTE_TARGET_METHOD   (1<<2)

Definition at line 27 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_TARGET_PARAMETER

#define ZEND_ATTRIBUTE_TARGET_PARAMETER   (1<<5)

Definition at line 30 of file zend_attributes.h.

◆ ZEND_ATTRIBUTE_TARGET_PROPERTY

#define ZEND_ATTRIBUTE_TARGET_PROPERTY   (1<<3)

Definition at line 28 of file zend_attributes.h.

Typedef Documentation

◆ zend_attribute

◆ zend_internal_attribute

Function Documentation

◆ zend_add_attribute()

ZEND_API zend_attribute * zend_add_attribute ( HashTable ** attributes,
zend_string * name,
uint32_t argc,
uint32_t flags,
uint32_t offset,
uint32_t lineno )

Definition at line 414 of file zend_attributes.c.

◆ zend_attribute_attribute_get_flags()

uint32_t zend_attribute_attribute_get_flags ( zend_attribute * attr,
zend_class_entry * scope )

Definition at line 39 of file zend_attributes.c.

◆ zend_attributes_shutdown()

void zend_attributes_shutdown ( void )

Definition at line 525 of file zend_attributes.c.

◆ zend_get_attribute()

ZEND_API zend_attribute * zend_get_attribute ( HashTable * attributes,
zend_string * lcname )

Definition at line 226 of file zend_attributes.c.

◆ zend_get_attribute_object()

ZEND_API zend_result zend_get_attribute_object ( zval * out,
zend_class_entry * attribute_ce,
zend_attribute * attribute_data,
zend_class_entry * scope,
zend_string * filename )

Definition at line 264 of file zend_attributes.c.

◆ zend_get_attribute_str()

ZEND_API zend_attribute * zend_get_attribute_str ( HashTable * attributes,
const char * str,
size_t len )

Definition at line 231 of file zend_attributes.c.

◆ zend_get_attribute_target_names()

ZEND_API zend_string * zend_get_attribute_target_names ( uint32_t targets)

Definition at line 360 of file zend_attributes.c.

◆ zend_get_attribute_value()

ZEND_API zend_result zend_get_attribute_value ( zval * ret,
zend_attribute * attr,
uint32_t i,
zend_class_entry * scope )

Definition at line 246 of file zend_attributes.c.

◆ zend_get_parameter_attribute()

ZEND_API zend_attribute * zend_get_parameter_attribute ( HashTable * attributes,
zend_string * lcname,
uint32_t offset )

Definition at line 236 of file zend_attributes.c.

◆ zend_get_parameter_attribute_str()

ZEND_API zend_attribute * zend_get_parameter_attribute_str ( HashTable * attributes,
const char * str,
size_t len,
uint32_t offset )

Definition at line 241 of file zend_attributes.c.

◆ zend_internal_attribute_get()

ZEND_API zend_internal_attribute * zend_internal_attribute_get ( zend_string * lcname)

Definition at line 487 of file zend_attributes.c.

◆ zend_internal_attribute_register()

ZEND_API zend_internal_attribute * zend_internal_attribute_register ( zend_class_entry * ce,
uint32_t flags )

Definition at line 479 of file zend_attributes.c.

◆ zend_is_attribute_repeated()

ZEND_API bool zend_is_attribute_repeated ( HashTable * attributes,
zend_attribute * attr )

Definition at line 377 of file zend_attributes.c.

◆ zend_mark_internal_attribute()

ZEND_API zend_internal_attribute * zend_mark_internal_attribute ( zend_class_entry * ce)

Definition at line 452 of file zend_attributes.c.

◆ zend_register_attribute_ce()

void zend_register_attribute_ce ( void )

Definition at line 492 of file zend_attributes.c.

Variable Documentation

◆ zend_ce_allow_dynamic_properties

ZEND_API zend_class_entry* zend_ce_allow_dynamic_properties
extern

Definition at line 29 of file zend_attributes.c.

◆ zend_ce_attribute

ZEND_API zend_class_entry* zend_ce_attribute
extern

Definition at line 27 of file zend_attributes.c.

◆ zend_ce_deprecated

ZEND_API zend_class_entry* zend_ce_deprecated
extern

Definition at line 33 of file zend_attributes.c.

◆ zend_ce_override

ZEND_API zend_class_entry* zend_ce_override
extern

Definition at line 32 of file zend_attributes.c.

◆ zend_ce_sensitive_parameter

ZEND_API zend_class_entry* zend_ce_sensitive_parameter
extern

Definition at line 30 of file zend_attributes.c.

◆ zend_ce_sensitive_parameter_value

ZEND_API zend_class_entry* zend_ce_sensitive_parameter_value
extern

Definition at line 31 of file zend_attributes.c.