php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_object_handlers.h File Reference
#include <stdint.h>
#include "zend_hash.h"
#include "zend_types.h"
#include "zend_property_hooks.h"
#include "zend_lazy_objects.h"

Go to the source code of this file.

Data Structures

struct  _zend_object_handlers
 

Macros

#define ZEND_WRONG_PROPERTY_INFO    ((struct _zend_property_info*)((intptr_t)-1))
 
#define ZEND_DYNAMIC_PROPERTY_OFFSET   ((uintptr_t)(intptr_t)(-1))
 
#define ZEND_FIRST_PROPERTY_OFFSET   (1 << 4)
 
#define IS_VALID_PROPERTY_OFFSET(offset)
 
#define IS_WRONG_PROPERTY_OFFSET(offset)
 
#define IS_HOOKED_PROPERTY_OFFSET(offset)
 
#define IS_DYNAMIC_PROPERTY_OFFSET(offset)
 
#define ZEND_PROPERTY_HOOK_SIMPLE_READ_BIT   2u
 
#define ZEND_PROPERTY_HOOK_SIMPLE_WRITE_BIT   4u
 
#define ZEND_PROPERTY_HOOK_SIMPLE_GET_BIT   8u
 
#define ZEND_IS_PROPERTY_HOOK_SIMPLE_READ(offset)
 
#define ZEND_IS_PROPERTY_HOOK_SIMPLE_WRITE(offset)
 
#define ZEND_IS_PROPERTY_HOOK_SIMPLE_GET(offset)
 
#define ZEND_SET_PROPERTY_HOOK_SIMPLE_READ(cache_slot)
 
#define ZEND_SET_PROPERTY_HOOK_SIMPLE_WRITE(cache_slot)
 
#define ZEND_SET_PROPERTY_HOOK_SIMPLE_GET(cache_slot)
 
#define IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET(offset)
 
#define ZEND_DECODE_DYN_PROP_OFFSET(offset)
 
#define ZEND_ENCODE_DYN_PROP_OFFSET(offset)
 
#define zend_get_std_object_handlers()
 
#define zend_get_function_root_class(fbc)
 
#define ZEND_PROPERTY_ISSET   0x0 /* Property exists and is not NULL */
 
#define ZEND_PROPERTY_NOT_EMPTY   ZEND_ISEMPTY /* Property is not empty */
 
#define ZEND_PROPERTY_EXISTS   0x2 /* Property exists */
 
#define ZEND_STD_BUILD_OBJECT_PROPERTIES_ARRAY_COMPATIBLE(object)
 
#define zend_release_properties(ht)
 
#define zend_free_trampoline(func)
 
#define ZEND_COMPARE_OBJECTS_FALLBACK(op1, op2)
 

Typedefs

typedef zval *(* zend_object_read_property_t) (zend_object *object, zend_string *member, int type, void **cache_slot, zval *rv)
 
typedef zval *(* zend_object_read_dimension_t) (zend_object *object, zval *offset, int type, zval *rv)
 
typedef zval *(* zend_object_write_property_t) (zend_object *object, zend_string *member, zval *value, void **cache_slot)
 
typedef void(* zend_object_write_dimension_t) (zend_object *object, zval *offset, zval *value)
 
typedef zval *(* zend_object_get_property_ptr_ptr_t) (zend_object *object, zend_string *member, int type, void **cache_slot)
 
typedef int(* zend_object_has_property_t) (zend_object *object, zend_string *member, int has_set_exists, void **cache_slot)
 
typedef int(* zend_object_has_dimension_t) (zend_object *object, zval *member, int check_empty)
 
typedef void(* zend_object_unset_property_t) (zend_object *object, zend_string *member, void **cache_slot)
 
typedef void(* zend_object_unset_dimension_t) (zend_object *object, zval *offset)
 
typedef HashTable *(* zend_object_get_properties_t) (zend_object *object)
 
typedef HashTable *(* zend_object_get_debug_info_t) (zend_object *object, int *is_temp)
 
typedef enum _zend_prop_purpose zend_prop_purpose
 
typedef zend_array *(* zend_object_get_properties_for_t) (zend_object *object, zend_prop_purpose purpose)
 
typedef zend_function *(* zend_object_get_method_t) (zend_object **object, zend_string *method, const zval *key)
 
typedef zend_function *(* zend_object_get_constructor_t) (zend_object *object)
 
typedef void(* zend_object_free_obj_t) (zend_object *object)
 
typedef void(* zend_object_dtor_obj_t) (zend_object *object)
 
typedef zend_object *(* zend_object_clone_obj_t) (zend_object *object)
 
typedef zend_string *(* zend_object_get_class_name_t) (const zend_object *object)
 
typedef int(* zend_object_compare_t) (zval *object1, zval *object2)
 
typedef zend_result(* zend_object_cast_t) (zend_object *readobj, zval *retval, int type)
 
typedef zend_result(* zend_object_count_elements_t) (zend_object *object, zend_long *count)
 
typedef zend_result(* zend_object_get_closure_t) (zend_object *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr, bool check_only)
 
typedef HashTable *(* zend_object_get_gc_t) (zend_object *object, zval **table, int *n)
 
typedef zend_result(* zend_object_do_operation_t) (uint8_t opcode, zval *result, zval *op1, zval *op2)
 

Enumerations

enum  _zend_prop_purpose {
  ZEND_PROP_PURPOSE_DEBUG , ZEND_PROP_PURPOSE_ARRAY_CAST , ZEND_PROP_PURPOSE_SERIALIZE , ZEND_PROP_PURPOSE_VAR_EXPORT ,
  ZEND_PROP_PURPOSE_JSON , ZEND_PROP_PURPOSE_GET_OBJECT_VARS , _ZEND_PROP_PURPOSE_NON_EXHAUSTIVE_ENUM
}
 

Functions

ZEND_API void zend_class_init_statics (zend_class_entry *ce)
 
ZEND_API zend_functionzend_std_get_static_method (zend_class_entry *ce, zend_string *function_name_strval, const zval *key)
 
ZEND_API zvalzend_std_get_static_property_with_info (zend_class_entry *ce, zend_string *property_name, int type, struct _zend_property_info **prop_info)
 
ZEND_API zvalzend_std_get_static_property (zend_class_entry *ce, zend_string *property_name, int type)
 
ZEND_API ZEND_COLD bool zend_std_unset_static_property (zend_class_entry *ce, zend_string *property_name)
 
ZEND_API zend_functionzend_std_get_constructor (zend_object *object)
 
ZEND_API struct _zend_property_infozend_get_property_info (const zend_class_entry *ce, zend_string *member, int silent)
 
ZEND_API HashTablezend_std_get_properties (zend_object *object)
 
ZEND_API HashTablezend_get_properties_no_lazy_init (zend_object *zobj)
 
ZEND_API HashTablezend_std_get_gc (zend_object *object, zval **table, int *n)
 
ZEND_API HashTablezend_std_get_debug_info (zend_object *object, int *is_temp)
 
ZEND_API zend_result zend_std_cast_object_tostring (zend_object *object, zval *writeobj, int type)
 
ZEND_API zvalzend_std_get_property_ptr_ptr (zend_object *object, zend_string *member, int type, void **cache_slot)
 
ZEND_API zvalzend_std_read_property (zend_object *object, zend_string *member, int type, void **cache_slot, zval *rv)
 
ZEND_API zvalzend_std_write_property (zend_object *object, zend_string *member, zval *value, void **cache_slot)
 
ZEND_API int zend_std_has_property (zend_object *object, zend_string *member, int has_set_exists, void **cache_slot)
 
ZEND_API void zend_std_unset_property (zend_object *object, zend_string *member, void **cache_slot)
 
ZEND_API zvalzend_std_read_dimension (zend_object *object, zval *offset, int type, zval *rv)
 
ZEND_API void zend_std_write_dimension (zend_object *object, zval *offset, zval *value)
 
ZEND_API int zend_std_has_dimension (zend_object *object, zval *offset, int check_empty)
 
ZEND_API void zend_std_unset_dimension (zend_object *object, zval *offset)
 
ZEND_API zend_functionzend_std_get_method (zend_object **obj_ptr, zend_string *method_name, const zval *key)
 
ZEND_API zend_stringzend_std_get_class_name (const zend_object *zobj)
 
ZEND_API int zend_std_compare_objects (zval *o1, zval *o2)
 
ZEND_API zend_result zend_std_get_closure (zend_object *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr, bool check_only)
 
ZEND_API HashTablerebuild_object_properties_internal (zend_object *zobj)
 
ZEND_API HashTablezend_std_build_object_properties_array (zend_object *zobj)
 
ZEND_API int zend_objects_not_comparable (zval *o1, zval *o2)
 
ZEND_API bool zend_check_protected (const zend_class_entry *ce, const zend_class_entry *scope)
 
ZEND_API zend_result zend_check_property_access (const zend_object *zobj, zend_string *prop_info_name, bool is_dynamic)
 
ZEND_API zend_functionzend_get_call_trampoline_func (const zend_class_entry *ce, zend_string *method_name, bool is_static)
 
ZEND_API uint32_t * zend_get_property_guard (zend_object *zobj, zend_string *member)
 
ZEND_API uint32_t * zend_get_recursion_guard (zend_object *zobj)
 
ZEND_API HashTablezend_std_get_properties_for (zend_object *obj, zend_prop_purpose purpose)
 
ZEND_API HashTablezend_get_properties_for (zval *obj, zend_prop_purpose purpose)
 
ZEND_API zend_functionzend_get_property_hook_trampoline (const zend_property_info *prop_info, zend_property_hook_kind kind, zend_string *prop_name)
 
ZEND_API bool ZEND_FASTCALL zend_asymmetric_property_has_set_access (const zend_property_info *prop_info)
 

Variables

const ZEND_API zend_object_handlers std_object_handlers
 

Macro Definition Documentation

◆ IS_DYNAMIC_PROPERTY_OFFSET

#define IS_DYNAMIC_PROPERTY_OFFSET ( offset)
Value:
((intptr_t)(offset) < 0)
zend_long offset

Definition at line 45 of file zend_object_handlers.h.

◆ IS_HOOKED_PROPERTY_OFFSET

#define IS_HOOKED_PROPERTY_OFFSET ( offset)
Value:
((intptr_t)(offset) > 0 && (intptr_t)(offset) < 16)

Definition at line 43 of file zend_object_handlers.h.

◆ IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET

#define IS_UNKNOWN_DYNAMIC_PROPERTY_OFFSET ( offset)
Value:

Definition at line 78 of file zend_object_handlers.h.

◆ IS_VALID_PROPERTY_OFFSET

#define IS_VALID_PROPERTY_OFFSET ( offset)
Value:
#define ZEND_FIRST_PROPERTY_OFFSET

Definition at line 41 of file zend_object_handlers.h.

◆ IS_WRONG_PROPERTY_OFFSET

#define IS_WRONG_PROPERTY_OFFSET ( offset)
Value:
((intptr_t)(offset) == 0)

Definition at line 42 of file zend_object_handlers.h.

◆ ZEND_COMPARE_OBJECTS_FALLBACK

#define ZEND_COMPARE_OBJECTS_FALLBACK ( op1,
op2 )
Value:
if (Z_TYPE_P(op1) != IS_OBJECT || \
Z_OBJ_HT_P(op1)->compare != Z_OBJ_HT_P(op2)->compare) { \
}
ZEND_API int zend_std_compare_objects(zval *o1, zval *o2)
#define Z_TYPE_P(zval_p)
Definition zend_types.h:660
#define Z_OBJ_HT_P(zval_p)
Definition zend_types.h:993
#define IS_OBJECT
Definition zend_types.h:608
op2
op1

Definition at line 352 of file zend_object_handlers.h.

◆ ZEND_DECODE_DYN_PROP_OFFSET

#define ZEND_DECODE_DYN_PROP_OFFSET ( offset)
Value:
((uintptr_t)(-(intptr_t)(offset) - 2))

Definition at line 79 of file zend_object_handlers.h.

◆ ZEND_DYNAMIC_PROPERTY_OFFSET

#define ZEND_DYNAMIC_PROPERTY_OFFSET   ((uintptr_t)(intptr_t)(-1))

Definition at line 35 of file zend_object_handlers.h.

◆ ZEND_ENCODE_DYN_PROP_OFFSET

#define ZEND_ENCODE_DYN_PROP_OFFSET ( offset)
Value:
((uintptr_t)(-((intptr_t)(offset) + 2)))

Definition at line 80 of file zend_object_handlers.h.

◆ ZEND_FIRST_PROPERTY_OFFSET

#define ZEND_FIRST_PROPERTY_OFFSET   (1 << 4)

Definition at line 40 of file zend_object_handlers.h.

◆ zend_free_trampoline

#define zend_free_trampoline ( func)
Value:
do { \
if ((func) == &EG(trampoline)) { \
EG(trampoline).common.attributes = NULL; \
EG(trampoline).common.function_name = NULL; \
} else { \
efree(func); \
} \
} while (0)
#define NULL
Definition gdcache.h:45
execute_data func
#define EG(v)

Definition at line 340 of file zend_object_handlers.h.

◆ zend_get_function_root_class

#define zend_get_function_root_class ( fbc)
Value:
((fbc)->common.prototype ? (fbc)->common.prototype->common.scope : (fbc)->common.scope)
zend_function * fbc

Definition at line 241 of file zend_object_handlers.h.

◆ zend_get_std_object_handlers

#define zend_get_std_object_handlers ( )
Value:
ZEND_API const zend_object_handlers std_object_handlers

Definition at line 238 of file zend_object_handlers.h.

◆ ZEND_IS_PROPERTY_HOOK_SIMPLE_GET

#define ZEND_IS_PROPERTY_HOOK_SIMPLE_GET ( offset)
Value:
#define ZEND_PROPERTY_HOOK_SIMPLE_GET_BIT

Definition at line 54 of file zend_object_handlers.h.

◆ ZEND_IS_PROPERTY_HOOK_SIMPLE_READ

#define ZEND_IS_PROPERTY_HOOK_SIMPLE_READ ( offset)
Value:
#define ZEND_PROPERTY_HOOK_SIMPLE_READ_BIT

Definition at line 50 of file zend_object_handlers.h.

◆ ZEND_IS_PROPERTY_HOOK_SIMPLE_WRITE

#define ZEND_IS_PROPERTY_HOOK_SIMPLE_WRITE ( offset)
Value:
#define ZEND_PROPERTY_HOOK_SIMPLE_WRITE_BIT

Definition at line 52 of file zend_object_handlers.h.

◆ ZEND_PROPERTY_EXISTS

#define ZEND_PROPERTY_EXISTS   0x2 /* Property exists */

Definition at line 246 of file zend_object_handlers.h.

◆ ZEND_PROPERTY_HOOK_SIMPLE_GET_BIT

#define ZEND_PROPERTY_HOOK_SIMPLE_GET_BIT   8u

Definition at line 49 of file zend_object_handlers.h.

◆ ZEND_PROPERTY_HOOK_SIMPLE_READ_BIT

#define ZEND_PROPERTY_HOOK_SIMPLE_READ_BIT   2u

Definition at line 47 of file zend_object_handlers.h.

◆ ZEND_PROPERTY_HOOK_SIMPLE_WRITE_BIT

#define ZEND_PROPERTY_HOOK_SIMPLE_WRITE_BIT   4u

Definition at line 48 of file zend_object_handlers.h.

◆ ZEND_PROPERTY_ISSET

#define ZEND_PROPERTY_ISSET   0x0 /* Property exists and is not NULL */

Definition at line 244 of file zend_object_handlers.h.

◆ ZEND_PROPERTY_NOT_EMPTY

#define ZEND_PROPERTY_NOT_EMPTY   ZEND_ISEMPTY /* Property is not empty */

Definition at line 245 of file zend_object_handlers.h.

◆ zend_release_properties

#define zend_release_properties ( ht)
Value:
do { \
if ((ht) && !(GC_FLAGS(ht) & GC_IMMUTABLE) && !GC_DELREF(ht)) { \
zend_array_destroy(ht); \
} \
} while (0)
HashTable * ht
Definition ffi.c:4838
#define GC_DELREF(p)
Definition zend_types.h:710
#define GC_FLAGS(p)
Definition zend_types.h:756
#define GC_IMMUTABLE
Definition zend_types.h:780

Definition at line 334 of file zend_object_handlers.h.

◆ ZEND_SET_PROPERTY_HOOK_SIMPLE_GET

#define ZEND_SET_PROPERTY_HOOK_SIMPLE_GET ( cache_slot)
Value:
do { \
void **__cache_slot = (cache_slot); \
if (__cache_slot) { \
CACHE_PTR_EX(__cache_slot + 1, (void*)((uintptr_t)CACHED_PTR_EX(__cache_slot + 1) | ZEND_PROPERTY_HOOK_SIMPLE_GET_BIT)); \
} \
} while (0)
#define CACHED_PTR_EX(slot)

Definition at line 70 of file zend_object_handlers.h.

◆ ZEND_SET_PROPERTY_HOOK_SIMPLE_READ

#define ZEND_SET_PROPERTY_HOOK_SIMPLE_READ ( cache_slot)
Value:
do { \
void **__cache_slot = (cache_slot); \
if (__cache_slot) { \
CACHE_PTR_EX(__cache_slot + 1, (void*)((uintptr_t)CACHED_PTR_EX(__cache_slot + 1) | ZEND_PROPERTY_HOOK_SIMPLE_READ_BIT)); \
} \
} while (0)

Definition at line 56 of file zend_object_handlers.h.

◆ ZEND_SET_PROPERTY_HOOK_SIMPLE_WRITE

#define ZEND_SET_PROPERTY_HOOK_SIMPLE_WRITE ( cache_slot)
Value:
do { \
void **__cache_slot = (cache_slot); \
if (__cache_slot) { \
CACHE_PTR_EX(__cache_slot + 1, (void*)((uintptr_t)CACHED_PTR_EX(__cache_slot + 1) | ZEND_PROPERTY_HOOK_SIMPLE_WRITE_BIT)); \
} \
} while (0)

Definition at line 63 of file zend_object_handlers.h.

◆ ZEND_STD_BUILD_OBJECT_PROPERTIES_ARRAY_COMPATIBLE

#define ZEND_STD_BUILD_OBJECT_PROPERTIES_ARRAY_COMPATIBLE ( object)
Value:
( \
/* We can use zend_std_build_object_properties_array() for objects \
* without properties ht and with standard handlers */ \
Z_OBJ_P(object)->properties == NULL \
&& Z_OBJ_HT_P(object)->get_properties_for == NULL \
&& Z_OBJ_HT_P(object)->get_properties == zend_std_get_properties \
/* For initialized proxies we need to forward to the real instance */ \
&& ( \
!zend_object_is_lazy_proxy(Z_OBJ_P(object)) \
|| !zend_lazy_object_initialized(Z_OBJ_P(object)) \
) \
)
ZEND_API HashTable * zend_std_get_properties(zend_object *zobj)
#define Z_OBJ_P(zval_p)
Definition zend_types.h:990

Definition at line 290 of file zend_object_handlers.h.

◆ ZEND_WRONG_PROPERTY_INFO

#define ZEND_WRONG_PROPERTY_INFO    ((struct _zend_property_info*)((intptr_t)-1))

Definition at line 32 of file zend_object_handlers.h.

Typedef Documentation

◆ zend_object_cast_t

typedef zend_result(* zend_object_cast_t) (zend_object *readobj, zval *retval, int type)

Definition at line 193 of file zend_object_handlers.h.

◆ zend_object_clone_obj_t

typedef zend_object *(* zend_object_clone_obj_t) (zend_object *object)

Definition at line 182 of file zend_object_handlers.h.

◆ zend_object_compare_t

typedef int(* zend_object_compare_t) (zval *object1, zval *object2)

Definition at line 188 of file zend_object_handlers.h.

◆ zend_object_count_elements_t

typedef zend_result(* zend_object_count_elements_t) (zend_object *object, zend_long *count)

Definition at line 197 of file zend_object_handlers.h.

◆ zend_object_do_operation_t

typedef zend_result(* zend_object_do_operation_t) (uint8_t opcode, zval *result, zval *op1, zval *op2)

Definition at line 203 of file zend_object_handlers.h.

◆ zend_object_dtor_obj_t

typedef void(* zend_object_dtor_obj_t) (zend_object *object)

Definition at line 180 of file zend_object_handlers.h.

◆ zend_object_free_obj_t

typedef void(* zend_object_free_obj_t) (zend_object *object)

Definition at line 167 of file zend_object_handlers.h.

◆ zend_object_get_class_name_t

typedef zend_string *(* zend_object_get_class_name_t) (const zend_object *object)

Definition at line 186 of file zend_object_handlers.h.

◆ zend_object_get_closure_t

typedef zend_result(* zend_object_get_closure_t) (zend_object *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr, bool check_only)

Definition at line 199 of file zend_object_handlers.h.

◆ zend_object_get_constructor_t

typedef zend_function *(* zend_object_get_constructor_t) (zend_object *object)

Definition at line 157 of file zend_object_handlers.h.

◆ zend_object_get_debug_info_t

typedef HashTable *(* zend_object_get_debug_info_t) (zend_object *object, int *is_temp)

Definition at line 128 of file zend_object_handlers.h.

◆ zend_object_get_gc_t

typedef HashTable *(* zend_object_get_gc_t) (zend_object *object, zval **table, int *n)

Definition at line 201 of file zend_object_handlers.h.

◆ zend_object_get_method_t

typedef zend_function *(* zend_object_get_method_t) (zend_object **object, zend_string *method, const zval *key)

Definition at line 156 of file zend_object_handlers.h.

◆ zend_object_get_properties_for_t

typedef zend_array *(* zend_object_get_properties_for_t) (zend_object *object, zend_prop_purpose purpose)

Definition at line 150 of file zend_object_handlers.h.

◆ zend_object_get_properties_t

typedef HashTable *(* zend_object_get_properties_t) (zend_object *object)

Definition at line 126 of file zend_object_handlers.h.

◆ zend_object_get_property_ptr_ptr_t

typedef zval *(* zend_object_get_property_ptr_ptr_t) (zend_object *object, zend_string *member, int type, void **cache_slot)

Definition at line 106 of file zend_object_handlers.h.

◆ zend_object_has_dimension_t

typedef int(* zend_object_has_dimension_t) (zend_object *object, zval *member, int check_empty)

Definition at line 117 of file zend_object_handlers.h.

◆ zend_object_has_property_t

typedef int(* zend_object_has_property_t) (zend_object *object, zend_string *member, int has_set_exists, void **cache_slot)

Definition at line 114 of file zend_object_handlers.h.

◆ zend_object_read_dimension_t

typedef zval *(* zend_object_read_dimension_t) (zend_object *object, zval *offset, int type, zval *rv)

Definition at line 87 of file zend_object_handlers.h.

◆ zend_object_read_property_t

typedef zval *(* zend_object_read_property_t) (zend_object *object, zend_string *member, int type, void **cache_slot, zval *rv)

Definition at line 84 of file zend_object_handlers.h.

◆ zend_object_unset_dimension_t

typedef void(* zend_object_unset_dimension_t) (zend_object *object, zval *offset)

Definition at line 123 of file zend_object_handlers.h.

◆ zend_object_unset_property_t

typedef void(* zend_object_unset_property_t) (zend_object *object, zend_string *member, void **cache_slot)

Definition at line 120 of file zend_object_handlers.h.

◆ zend_object_write_dimension_t

typedef void(* zend_object_write_dimension_t) (zend_object *object, zval *offset, zval *value)

Definition at line 96 of file zend_object_handlers.h.

◆ zend_object_write_property_t

typedef zval *(* zend_object_write_property_t) (zend_object *object, zend_string *member, zval *value, void **cache_slot)

Definition at line 93 of file zend_object_handlers.h.

◆ zend_prop_purpose

Enumeration Type Documentation

◆ _zend_prop_purpose

Enumerator
ZEND_PROP_PURPOSE_DEBUG 
ZEND_PROP_PURPOSE_ARRAY_CAST 
ZEND_PROP_PURPOSE_SERIALIZE 
ZEND_PROP_PURPOSE_VAR_EXPORT 
ZEND_PROP_PURPOSE_JSON 
ZEND_PROP_PURPOSE_GET_OBJECT_VARS 
_ZEND_PROP_PURPOSE_NON_EXHAUSTIVE_ENUM 

Definition at line 130 of file zend_object_handlers.h.

Function Documentation

◆ rebuild_object_properties_internal()

ZEND_API HashTable * rebuild_object_properties_internal ( zend_object * zobj)

Definition at line 75 of file zend_object_handlers.c.

◆ zend_asymmetric_property_has_set_access()

ZEND_API bool ZEND_FASTCALL zend_asymmetric_property_has_set_access ( const zend_property_info * prop_info)

Definition at line 580 of file zend_object_handlers.c.

◆ zend_check_property_access()

ZEND_API zend_result zend_check_property_access ( const zend_object * zobj,
zend_string * prop_info_name,
bool is_dynamic )

Definition at line 534 of file zend_object_handlers.c.

◆ zend_check_protected()

ZEND_API bool zend_check_protected ( const zend_class_entry * ce,
const zend_class_entry * scope )

Definition at line 1639 of file zend_object_handlers.c.

◆ zend_class_init_statics()

ZEND_API void zend_class_init_statics ( zend_class_entry * ce)

Definition at line 1993 of file zend_object_handlers.c.

◆ zend_get_call_trampoline_func()

ZEND_API zend_function * zend_get_call_trampoline_func ( const zend_class_entry * ce,
zend_string * method_name,
bool is_static )

Definition at line 1666 of file zend_object_handlers.c.

◆ zend_get_properties_for()

ZEND_API HashTable * zend_get_properties_for ( zval * obj,
zend_prop_purpose purpose )

Definition at line 2528 of file zend_object_handlers.c.

◆ zend_get_properties_no_lazy_init()

ZEND_API HashTable * zend_get_properties_no_lazy_init ( zend_object * zobj)

Definition at line 151 of file zend_object_handlers.c.

◆ zend_get_property_guard()

ZEND_API uint32_t * zend_get_property_guard ( zend_object * zobj,
zend_string * member )

Definition at line 604 of file zend_object_handlers.c.

◆ zend_get_property_hook_trampoline()

ZEND_API zend_function * zend_get_property_hook_trampoline ( const zend_property_info * prop_info,
zend_property_hook_kind kind,
zend_string * prop_name )

Definition at line 1775 of file zend_object_handlers.c.

◆ zend_get_property_info()

ZEND_API struct _zend_property_info * zend_get_property_info ( const zend_class_entry * ce,
zend_string * member,
int silent )

Definition at line 469 of file zend_object_handlers.c.

◆ zend_get_recursion_guard()

ZEND_API uint32_t * zend_get_recursion_guard ( zend_object * zobj)

Definition at line 652 of file zend_object_handlers.c.

◆ zend_objects_not_comparable()

ZEND_API int zend_objects_not_comparable ( zval * o1,
zval * o2 )

Definition at line 2246 of file zend_object_handlers.c.

◆ zend_std_build_object_properties_array()

ZEND_API HashTable * zend_std_build_object_properties_array ( zend_object * zobj)

Definition at line 107 of file zend_object_handlers.c.

◆ zend_std_cast_object_tostring()

ZEND_API zend_result zend_std_cast_object_tostring ( zend_object * object,
zval * writeobj,
int type )

Definition at line 2426 of file zend_object_handlers.c.

◆ zend_std_compare_objects()

ZEND_API int zend_std_compare_objects ( zval * o1,
zval * o2 )

Definition at line 2128 of file zend_object_handlers.c.

◆ zend_std_get_class_name()

ZEND_API zend_string * zend_std_get_class_name ( const zend_object * zobj)

Definition at line 2420 of file zend_object_handlers.c.

◆ zend_std_get_closure()

ZEND_API zend_result zend_std_get_closure ( zend_object * obj,
zend_class_entry ** ce_ptr,
zend_function ** fptr_ptr,
zend_object ** obj_ptr,
bool check_only )

Definition at line 2456 of file zend_object_handlers.c.

◆ zend_std_get_constructor()

ZEND_API zend_function * zend_std_get_constructor ( zend_object * object)

Definition at line 2106 of file zend_object_handlers.c.

◆ zend_std_get_debug_info()

ZEND_API HashTable * zend_std_get_debug_info ( zend_object * object,
int * is_temp )

Definition at line 193 of file zend_object_handlers.c.

◆ zend_std_get_gc()

ZEND_API HashTable * zend_std_get_gc ( zend_object * object,
zval ** table,
int * n )

Definition at line 171 of file zend_object_handlers.c.

◆ zend_std_get_method()

ZEND_API zend_function * zend_std_get_method ( zend_object ** obj_ptr,
zend_string * method_name,
const zval * key )

Definition at line 1836 of file zend_object_handlers.c.

◆ zend_std_get_properties()

ZEND_API HashTable * zend_std_get_properties ( zend_object * object)

Definition at line 144 of file zend_object_handlers.c.

◆ zend_std_get_properties_for()

ZEND_API HashTable * zend_std_get_properties_for ( zend_object * obj,
zend_prop_purpose purpose )

Definition at line 2480 of file zend_object_handlers.c.

◆ zend_std_get_property_ptr_ptr()

ZEND_API zval * zend_std_get_property_ptr_ptr ( zend_object * object,
zend_string * member,
int type,
void ** cache_slot )

Definition at line 1375 of file zend_object_handlers.c.

◆ zend_std_get_static_method()

ZEND_API zend_function * zend_std_get_static_method ( zend_class_entry * ce,
zend_string * function_name_strval,
const zval * key )

Definition at line 1932 of file zend_object_handlers.c.

◆ zend_std_get_static_property()

ZEND_API zval * zend_std_get_static_property ( zend_class_entry * ce,
zend_string * property_name,
int type )

Definition at line 2080 of file zend_object_handlers.c.

◆ zend_std_get_static_property_with_info()

ZEND_API zval * zend_std_get_static_property_with_info ( zend_class_entry * ce,
zend_string * property_name,
int type,
struct _zend_property_info ** prop_info )

Definition at line 2017 of file zend_object_handlers.c.

◆ zend_std_has_dimension()

ZEND_API int zend_std_has_dimension ( zend_object * object,
zval * offset,
int check_empty )

Definition at line 1346 of file zend_object_handlers.c.

◆ zend_std_has_property()

ZEND_API int zend_std_has_property ( zend_object * object,
zend_string * member,
int has_set_exists,
void ** cache_slot )

Definition at line 2252 of file zend_object_handlers.c.

◆ zend_std_read_dimension()

ZEND_API zval * zend_std_read_dimension ( zend_object * object,
zval * offset,
int type,
zval * rv )

Definition at line 1272 of file zend_object_handlers.c.

◆ zend_std_read_property()

ZEND_API zval * zend_std_read_property ( zend_object * object,
zend_string * member,
int type,
void ** cache_slot,
zval * rv )

Definition at line 727 of file zend_object_handlers.c.

◆ zend_std_unset_dimension()

ZEND_API void zend_std_unset_dimension ( zend_object * object,
zval * offset )

Definition at line 1600 of file zend_object_handlers.c.

◆ zend_std_unset_property()

ZEND_API void zend_std_unset_property ( zend_object * object,
zend_string * member,
void ** cache_slot )

Definition at line 1475 of file zend_object_handlers.c.

◆ zend_std_unset_static_property()

ZEND_API ZEND_COLD bool zend_std_unset_static_property ( zend_class_entry * ce,
zend_string * property_name )

Definition at line 2086 of file zend_object_handlers.c.

◆ zend_std_write_dimension()

ZEND_API void zend_std_write_dimension ( zend_object * object,
zval * offset,
zval * value )

Definition at line 1323 of file zend_object_handlers.c.

◆ zend_std_write_property()

ZEND_API zval * zend_std_write_property ( zend_object * object,
zend_string * member,
zval * value,
void ** cache_slot )

Definition at line 1031 of file zend_object_handlers.c.

Variable Documentation

◆ std_object_handlers

const ZEND_API zend_object_handlers std_object_handlers
extern

Definition at line 2538 of file zend_object_handlers.c.