php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_operators.c File Reference
#include <ctype.h>
#include "zend.h"
#include "zend_operators.h"
#include "zend_variables.h"
#include "zend_globals.h"
#include "zend_list.h"
#include "zend_API.h"
#include "zend_strtod.h"
#include "zend_exceptions.h"
#include "zend_closures.h"
#include <locale.h>

Go to the source code of this file.

Macros

#define zend_tolower(c)
 
#define TYPE_PAIR(t1, t2)
 
#define convert_object_to_type(op, dst, ctype)
 
#define ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(opcode)
 
#define ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(opcode)
 
#define ZEND_TRY_BINARY_OBJECT_OPERATION(opcode)
 
#define ZEND_TRY_UNARY_OBJECT_OPERATION(opcode)
 
#define convert_op1_op2_long(op1, op1_lval, op2, op2_lval, result, opcode, sigil)
 
#define TYPES_NOT_HANDLED   1
 
#define DIV_BY_ZERO   2
 
#define LOWER_CASE   1
 
#define UPPER_CASE   2
 
#define NUMERIC   3
 

Functions

ZEND_API zend_long ZEND_FASTCALL zend_atol (const char *str, size_t str_len)
 
ZEND_API int ZEND_FASTCALL zend_atoi (const char *str, size_t str_len)
 
ZEND_API void ZEND_FASTCALL convert_scalar_to_number (zval *op)
 
ZEND_API zend_long ZEND_FASTCALL zval_try_get_long (const zval *op, bool *failed)
 
ZEND_API void ZEND_FASTCALL convert_to_long (zval *op)
 
ZEND_API void ZEND_FASTCALL convert_to_double (zval *op)
 
ZEND_API void ZEND_FASTCALL convert_to_null (zval *op)
 
ZEND_API void ZEND_FASTCALL convert_to_boolean (zval *op)
 
ZEND_API void ZEND_FASTCALL _convert_to_string (zval *op)
 
ZEND_API bool ZEND_FASTCALL _try_convert_to_string (zval *op)
 
ZEND_API void ZEND_FASTCALL convert_to_array (zval *op)
 
ZEND_API void ZEND_FASTCALL convert_to_object (zval *op)
 
ZEND_API void ZEND_COLD zend_incompatible_double_to_long_error (double d)
 
ZEND_API void ZEND_COLD zend_incompatible_string_to_long_error (const zend_string *s)
 
ZEND_API zend_long ZEND_FASTCALL zval_get_long_func (const zval *op, bool is_strict)
 
ZEND_API double ZEND_FASTCALL zval_get_double_func (const zval *op)
 
ZEND_API zend_string *ZEND_FASTCALL zval_get_string_func (zval *op)
 
ZEND_API zend_string *ZEND_FASTCALL zval_try_get_string_func (zval *op)
 
ZEND_API zend_result ZEND_FASTCALL add_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL sub_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL mul_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL pow_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL div_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL mod_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL boolean_xor_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL boolean_not_function (zval *result, zval *op1)
 
ZEND_API zend_result ZEND_FASTCALL bitwise_not_function (zval *result, zval *op1)
 
ZEND_API zend_result ZEND_FASTCALL bitwise_or_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL bitwise_and_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL bitwise_xor_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL shift_left_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL shift_right_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL concat_function (zval *result, zval *op1, zval *op2)
 
ZEND_API int ZEND_FASTCALL string_compare_function_ex (zval *op1, zval *op2, bool case_insensitive)
 
ZEND_API int ZEND_FASTCALL string_compare_function (zval *op1, zval *op2)
 
ZEND_API int ZEND_FASTCALL string_case_compare_function (zval *op1, zval *op2)
 
ZEND_API int ZEND_FASTCALL string_locale_compare_function (zval *op1, zval *op2)
 
ZEND_API int ZEND_FASTCALL numeric_compare_function (zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL compare_function (zval *result, zval *op1, zval *op2)
 
ZEND_API int ZEND_FASTCALL zend_compare (zval *op1, zval *op2)
 
ZEND_API bool ZEND_FASTCALL zend_is_identical (const zval *op1, const zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL is_identical_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL is_not_identical_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL is_equal_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL is_not_equal_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL is_smaller_function (zval *result, zval *op1, zval *op2)
 
ZEND_API zend_result ZEND_FASTCALL is_smaller_or_equal_function (zval *result, zval *op1, zval *op2)
 
ZEND_API bool ZEND_FASTCALL zend_class_implements_interface (const zend_class_entry *class_ce, const zend_class_entry *interface_ce)
 
ZEND_API bool ZEND_FASTCALL instanceof_function_slow (const zend_class_entry *instance_ce, const zend_class_entry *ce)
 
ZEND_API bool zend_string_only_has_ascii_alphanumeric (const zend_string *str)
 
ZEND_API zend_result ZEND_FASTCALL increment_function (zval *op1)
 
ZEND_API zend_result ZEND_FASTCALL decrement_function (zval *op1)
 
ZEND_API bool ZEND_FASTCALL zend_is_true (const zval *op)
 
ZEND_API bool ZEND_FASTCALL zend_object_is_true (const zval *op)
 
ZEND_API void zend_update_current_locale (void)
 
ZEND_API void zend_reset_lc_ctype_locale (void)
 
ZEND_API char *ZEND_FASTCALL zend_str_tolower_copy (char *dest, const char *source, size_t length)
 
ZEND_API char *ZEND_FASTCALL zend_str_toupper_copy (char *dest, const char *source, size_t length)
 
ZEND_API char *ZEND_FASTCALL zend_str_tolower_dup (const char *source, size_t length)
 
ZEND_API char *ZEND_FASTCALL zend_str_toupper_dup (const char *source, size_t length)
 
ZEND_API void ZEND_FASTCALL zend_str_tolower (char *str, size_t length)
 
ZEND_API void ZEND_FASTCALL zend_str_toupper (char *str, size_t length)
 
ZEND_API char *ZEND_FASTCALL zend_str_tolower_dup_ex (const char *source, size_t length)
 
ZEND_API char *ZEND_FASTCALL zend_str_toupper_dup_ex (const char *source, size_t length)
 
ZEND_API zend_string *ZEND_FASTCALL zend_string_tolower_ex (zend_string *str, bool persistent)
 
ZEND_API zend_string *ZEND_FASTCALL zend_string_toupper_ex (zend_string *str, bool persistent)
 
ZEND_API int ZEND_FASTCALL zend_binary_strcmp (const char *s1, size_t len1, const char *s2, size_t len2)
 
ZEND_API int ZEND_FASTCALL zend_binary_strncmp (const char *s1, size_t len1, const char *s2, size_t len2, size_t length)
 
ZEND_API int ZEND_FASTCALL zend_binary_strcasecmp (const char *s1, size_t len1, const char *s2, size_t len2)
 
ZEND_API int ZEND_FASTCALL zend_binary_strncasecmp (const char *s1, size_t len1, const char *s2, size_t len2, size_t length)
 
ZEND_API int ZEND_FASTCALL zend_binary_strcasecmp_l (const char *s1, size_t len1, const char *s2, size_t len2)
 
ZEND_API int ZEND_FASTCALL zend_binary_strncasecmp_l (const char *s1, size_t len1, const char *s2, size_t len2, size_t length)
 
ZEND_API int ZEND_FASTCALL zend_binary_zval_strcmp (zval *s1, zval *s2)
 
ZEND_API int ZEND_FASTCALL zend_binary_zval_strncmp (zval *s1, zval *s2, zval *s3)
 
ZEND_API bool ZEND_FASTCALL zendi_smart_streq (zend_string *s1, zend_string *s2)
 
ZEND_API int ZEND_FASTCALL zendi_smart_strcmp (zend_string *s1, zend_string *s2)
 
ZEND_API int ZEND_FASTCALL zend_compare_symbol_tables (HashTable *ht1, HashTable *ht2)
 
ZEND_API int ZEND_FASTCALL zend_compare_arrays (zval *a1, zval *a2)
 
ZEND_API int ZEND_FASTCALL zend_compare_objects (zval *o1, zval *o2)
 
ZEND_API zend_string *ZEND_FASTCALL zend_long_to_str (zend_long num)
 
ZEND_API zend_string *ZEND_FASTCALL zend_ulong_to_str (zend_ulong num)
 
ZEND_API zend_string *ZEND_FASTCALL zend_u64_to_str (uint64_t num)
 
ZEND_API zend_string *ZEND_FASTCALL zend_i64_to_str (int64_t num)
 
ZEND_API zend_string *ZEND_FASTCALL zend_double_to_str (double num)
 
ZEND_API uint8_t ZEND_FASTCALL is_numeric_str_function (const zend_string *str, zend_long *lval, double *dval)
 
ZEND_API uint8_t ZEND_FASTCALL _is_numeric_string_ex (const char *str, size_t length, zend_long *lval, double *dval, bool allow_errors, int *oflow_info, bool *trailing_data)
 
ZEND_API const char *ZEND_FASTCALL zend_memnstr_ex (const char *haystack, const char *needle, size_t needle_len, const char *end)
 
ZEND_API const char *ZEND_FASTCALL zend_memnrstr_ex (const char *haystack, const char *needle, size_t needle_len, const char *end)
 
ZEND_API zend_long ZEND_FASTCALL zend_dval_to_lval_slow (double d)
 

Variables

ZEND_API const unsigned char zend_tolower_map [256]
 
ZEND_API const unsigned char zend_toupper_map [256]
 

Macro Definition Documentation

◆ convert_object_to_type

#define convert_object_to_type ( op,
dst,
ctype )
Value:
ZVAL_UNDEF(dst); \
if (Z_OBJ_HT_P(op)->cast_object(Z_OBJ_P(op), dst, ctype) == FAILURE) { \
zend_error(E_WARNING, \
"Object of class %s could not be converted to %s", ZSTR_VAL(Z_OBJCE_P(op)->name),\
} \
ctype
Definition ffi.c:4208
ZEND_API const char * zend_get_type_by_const(int type)
Definition zend_API.c:112
#define E_WARNING
Definition zend_errors.h:24
#define ZSTR_VAL(zstr)
Definition zend_string.h:68
#define ZVAL_UNDEF(z)
#define Z_OBJ_P(zval_p)
Definition zend_types.h:990
#define Z_OBJ_HT_P(zval_p)
Definition zend_types.h:993
#define Z_OBJCE_P(zval_p)
@ FAILURE
Definition zend_types.h:61
zend_string * name

Definition at line 232 of file zend_operators.c.

◆ convert_op1_op2_long

#define convert_op1_op2_long ( op1,
op1_lval,
op2,
op2_lval,
result,
opcode,
sigil )

Definition at line 492 of file zend_operators.c.

◆ DIV_BY_ZERO

#define DIV_BY_ZERO   2

Definition at line 1394 of file zend_operators.c.

◆ LOWER_CASE

#define LOWER_CASE   1

Definition at line 2504 of file zend_operators.c.

◆ NUMERIC

#define NUMERIC   3

Definition at line 2506 of file zend_operators.c.

◆ TYPE_PAIR

#define TYPE_PAIR ( t1,
t2 )
Value:
(((t1) << 4) | (t2))
#define t1
#define t2

Definition at line 61 of file zend_operators.c.

◆ TYPES_NOT_HANDLED

#define TYPES_NOT_HANDLED   1

Definition at line 1393 of file zend_operators.c.

◆ UPPER_CASE

#define UPPER_CASE   2

Definition at line 2505 of file zend_operators.c.

◆ zend_tolower

#define zend_tolower ( c)
Value:
tolower(c)

Definition at line 58 of file zend_operators.c.

◆ ZEND_TRY_BINARY_OBJECT_OPERATION

#define ZEND_TRY_BINARY_OBJECT_OPERATION ( opcode)
Value:
else \
ZEND_TRY_BINARY_OP2_OBJECT_OPERATION(opcode)
#define ZEND_TRY_BINARY_OP1_OBJECT_OPERATION(opcode)

Definition at line 480 of file zend_operators.c.

◆ ZEND_TRY_BINARY_OP1_OBJECT_OPERATION

#define ZEND_TRY_BINARY_OP1_OBJECT_OPERATION ( opcode)
Value:
&& UNEXPECTED(Z_OBJ_HANDLER_P(op1, do_operation))) { \
if (EXPECTED(SUCCESS == Z_OBJ_HANDLER_P(op1, do_operation)(opcode, result, op1, op2))) { \
return SUCCESS; \
} \
}
#define SUCCESS
Definition hash_sha3.c:261
#define EXPECTED(condition)
#define UNEXPECTED(condition)
#define Z_OBJ_HANDLER_P(zv_p, hf)
Definition zend_types.h:996
#define Z_TYPE_P(zval_p)
Definition zend_types.h:660
#define IS_OBJECT
Definition zend_types.h:608
bool result
op2
op1

Definition at line 465 of file zend_operators.c.

◆ ZEND_TRY_BINARY_OP2_OBJECT_OPERATION

#define ZEND_TRY_BINARY_OP2_OBJECT_OPERATION ( opcode)
Value:
&& UNEXPECTED(Z_OBJ_HANDLER_P(op2, do_operation)) \
&& EXPECTED(SUCCESS == Z_OBJ_HANDLER_P(op2, do_operation)(opcode, result, op1, op2))) { \
return SUCCESS; \
}

Definition at line 473 of file zend_operators.c.

◆ ZEND_TRY_UNARY_OBJECT_OPERATION

#define ZEND_TRY_UNARY_OBJECT_OPERATION ( opcode)
Value:
&& UNEXPECTED(Z_OBJ_HANDLER_P(op1, do_operation)) \
&& EXPECTED(SUCCESS == Z_OBJ_HANDLER_P(op1, do_operation)(opcode, result, op1, NULL))) { \
return SUCCESS; \
}
#define NULL
Definition gdcache.h:45

Definition at line 485 of file zend_operators.c.

Function Documentation

◆ _convert_to_string()

ZEND_API void ZEND_FASTCALL _convert_to_string ( zval * op)

Definition at line 728 of file zend_operators.c.

◆ _is_numeric_string_ex()

ZEND_API uint8_t ZEND_FASTCALL _is_numeric_string_ex ( const char * str,
size_t length,
zend_long * lval,
double * dval,
bool allow_errors,
int * oflow_info,
bool * trailing_data )

Checks whether the string "str" with length "length" is numeric. The value of allow_errors determines whether it's required to be entirely numeric, or just its prefix. Leading whitespace is allowed.

The function returns 0 if the string did not contain a valid number; IS_LONG if it contained a number that fits within the range of a long; or IS_DOUBLE if the number was out of long range or contained a decimal point/exponent. The number's value is returned into the respective pointer, *lval or *dval, if that pointer is not NULL.

This variant also gives information if a string that represents an integer could not be represented as such due to overflow. It writes 1 to oflow_info if the integer is larger than ZEND_LONG_MAX and -1 if it's smaller than ZEND_LONG_MIN.

Definition at line 3519 of file zend_operators.c.

◆ _try_convert_to_string()

ZEND_API bool ZEND_FASTCALL _try_convert_to_string ( zval * op)

Definition at line 782 of file zend_operators.c.

◆ add_function()

ZEND_API zend_result ZEND_FASTCALL add_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1144 of file zend_operators.c.

◆ bitwise_and_function()

ZEND_API zend_result ZEND_FASTCALL bitwise_and_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1724 of file zend_operators.c.

◆ bitwise_not_function()

ZEND_API zend_result ZEND_FASTCALL bitwise_not_function ( zval * result,
zval * op1 )

Definition at line 1591 of file zend_operators.c.

◆ bitwise_or_function()

ZEND_API zend_result ZEND_FASTCALL bitwise_or_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1642 of file zend_operators.c.

◆ bitwise_xor_function()

ZEND_API zend_result ZEND_FASTCALL bitwise_xor_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1806 of file zend_operators.c.

◆ boolean_not_function()

ZEND_API zend_result ZEND_FASTCALL boolean_not_function ( zval * result,
zval * op1 )

Definition at line 1566 of file zend_operators.c.

◆ boolean_xor_function()

ZEND_API zend_result ZEND_FASTCALL boolean_xor_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1516 of file zend_operators.c.

◆ compare_function()

ZEND_API zend_result ZEND_FASTCALL compare_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 2199 of file zend_operators.c.

◆ concat_function()

ZEND_API zend_result ZEND_FASTCALL concat_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1961 of file zend_operators.c.

◆ convert_scalar_to_number()

ZEND_API void ZEND_FASTCALL convert_scalar_to_number ( zval * op)

Definition at line 242 of file zend_operators.c.

◆ convert_to_array()

ZEND_API void ZEND_FASTCALL convert_to_array ( zval * op)

Definition at line 805 of file zend_operators.c.

◆ convert_to_boolean()

ZEND_API void ZEND_FASTCALL convert_to_boolean ( zval * op)

Definition at line 663 of file zend_operators.c.

◆ convert_to_double()

ZEND_API void ZEND_FASTCALL convert_to_double ( zval * op)

Definition at line 597 of file zend_operators.c.

◆ convert_to_long()

ZEND_API void ZEND_FASTCALL convert_to_long ( zval * op)

Definition at line 540 of file zend_operators.c.

◆ convert_to_null()

ZEND_API void ZEND_FASTCALL convert_to_null ( zval * op)

Definition at line 656 of file zend_operators.c.

◆ convert_to_object()

ZEND_API void ZEND_FASTCALL convert_to_object ( zval * op)

Definition at line 851 of file zend_operators.c.

◆ decrement_function()

ZEND_API zend_result ZEND_FASTCALL decrement_function ( zval * op1)

Definition at line 2711 of file zend_operators.c.

◆ div_function()

ZEND_API zend_result ZEND_FASTCALL div_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1437 of file zend_operators.c.

◆ increment_function()

ZEND_API zend_result ZEND_FASTCALL increment_function ( zval * op1)

Definition at line 2626 of file zend_operators.c.

◆ instanceof_function_slow()

ZEND_API bool ZEND_FASTCALL instanceof_function_slow ( const zend_class_entry * instance_ce,
const zend_class_entry * ce )

Definition at line 2475 of file zend_operators.c.

◆ is_equal_function()

ZEND_API zend_result ZEND_FASTCALL is_equal_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 2430 of file zend_operators.c.

◆ is_identical_function()

ZEND_API zend_result ZEND_FASTCALL is_identical_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 2416 of file zend_operators.c.

◆ is_not_equal_function()

ZEND_API zend_result ZEND_FASTCALL is_not_equal_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 2437 of file zend_operators.c.

◆ is_not_identical_function()

ZEND_API zend_result ZEND_FASTCALL is_not_identical_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 2423 of file zend_operators.c.

◆ is_numeric_str_function()

ZEND_API uint8_t ZEND_FASTCALL is_numeric_str_function ( const zend_string * str,
zend_long * lval,
double * dval )

Definition at line 3513 of file zend_operators.c.

◆ is_smaller_function()

ZEND_API zend_result ZEND_FASTCALL is_smaller_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 2444 of file zend_operators.c.

◆ is_smaller_or_equal_function()

ZEND_API zend_result ZEND_FASTCALL is_smaller_or_equal_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 2451 of file zend_operators.c.

◆ mod_function()

ZEND_API zend_result ZEND_FASTCALL mod_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1482 of file zend_operators.c.

◆ mul_function()

ZEND_API zend_result ZEND_FASTCALL mul_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1278 of file zend_operators.c.

◆ numeric_compare_function()

ZEND_API int ZEND_FASTCALL numeric_compare_function ( zval * op1,
zval * op2 )

Definition at line 2188 of file zend_operators.c.

◆ pow_function()

ZEND_API zend_result ZEND_FASTCALL pow_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1359 of file zend_operators.c.

◆ shift_left_function()

ZEND_API zend_result ZEND_FASTCALL shift_left_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1888 of file zend_operators.c.

◆ shift_right_function()

ZEND_API zend_result ZEND_FASTCALL shift_right_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1925 of file zend_operators.c.

◆ string_case_compare_function()

ZEND_API int ZEND_FASTCALL string_case_compare_function ( zval * op1,
zval * op2 )

Definition at line 2153 of file zend_operators.c.

◆ string_compare_function()

ZEND_API int ZEND_FASTCALL string_compare_function ( zval * op1,
zval * op2 )

Definition at line 2131 of file zend_operators.c.

◆ string_compare_function_ex()

ZEND_API int ZEND_FASTCALL string_compare_function_ex ( zval * op1,
zval * op2,
bool case_insensitive )

Definition at line 2112 of file zend_operators.c.

◆ string_locale_compare_function()

ZEND_API int ZEND_FASTCALL string_locale_compare_function ( zval * op1,
zval * op2 )

Definition at line 2175 of file zend_operators.c.

◆ sub_function()

ZEND_API zend_result ZEND_FASTCALL sub_function ( zval * result,
zval * op1,
zval * op2 )

Definition at line 1209 of file zend_operators.c.

◆ zend_atoi()

ZEND_API int ZEND_FASTCALL zend_atoi ( const char * str,
size_t str_len )

Deprecated in favor of ZEND_STRTOL()

Definition at line 226 of file zend_operators.c.

◆ zend_atol()

ZEND_API zend_long ZEND_FASTCALL zend_atol ( const char * str,
size_t str_len )

Deprecated in favor of ZEND_STRTOL()

Definition at line 221 of file zend_operators.c.

◆ zend_binary_strcasecmp()

ZEND_API int ZEND_FASTCALL zend_binary_strcasecmp ( const char * s1,
size_t len1,
const char * s2,
size_t len2 )

Definition at line 3189 of file zend_operators.c.

◆ zend_binary_strcasecmp_l()

ZEND_API int ZEND_FASTCALL zend_binary_strcasecmp_l ( const char * s1,
size_t len1,
const char * s2,
size_t len2 )

Definition at line 3232 of file zend_operators.c.

◆ zend_binary_strcmp()

ZEND_API int ZEND_FASTCALL zend_binary_strcmp ( const char * s1,
size_t len1,
const char * s2,
size_t len2 )

Definition at line 3157 of file zend_operators.c.

◆ zend_binary_strncasecmp()

ZEND_API int ZEND_FASTCALL zend_binary_strncasecmp ( const char * s1,
size_t len1,
const char * s2,
size_t len2,
size_t length )

Definition at line 3211 of file zend_operators.c.

◆ zend_binary_strncasecmp_l()

ZEND_API int ZEND_FASTCALL zend_binary_strncasecmp_l ( const char * s1,
size_t len1,
const char * s2,
size_t len2,
size_t length )

Definition at line 3254 of file zend_operators.c.

◆ zend_binary_strncmp()

ZEND_API int ZEND_FASTCALL zend_binary_strncmp ( const char * s1,
size_t len1,
const char * s2,
size_t len2,
size_t length )

Definition at line 3173 of file zend_operators.c.

◆ zend_binary_zval_strcmp()

ZEND_API int ZEND_FASTCALL zend_binary_zval_strcmp ( zval * s1,
zval * s2 )

Definition at line 3275 of file zend_operators.c.

◆ zend_binary_zval_strncmp()

ZEND_API int ZEND_FASTCALL zend_binary_zval_strncmp ( zval * s1,
zval * s2,
zval * s3 )

Definition at line 3281 of file zend_operators.c.

◆ zend_class_implements_interface()

ZEND_API bool ZEND_FASTCALL zend_class_implements_interface ( const zend_class_entry * class_ce,
const zend_class_entry * interface_ce )

Definition at line 2458 of file zend_operators.c.

◆ zend_compare()

ZEND_API int ZEND_FASTCALL zend_compare ( zval * op1,
zval * op2 )

Definition at line 2250 of file zend_operators.c.

◆ zend_compare_arrays()

ZEND_API int ZEND_FASTCALL zend_compare_arrays ( zval * a1,
zval * a2 )

Definition at line 3398 of file zend_operators.c.

◆ zend_compare_objects()

ZEND_API int ZEND_FASTCALL zend_compare_objects ( zval * o1,
zval * o2 )

Definition at line 3404 of file zend_operators.c.

◆ zend_compare_symbol_tables()

ZEND_API int ZEND_FASTCALL zend_compare_symbol_tables ( HashTable * ht1,
HashTable * ht2 )

Definition at line 3392 of file zend_operators.c.

◆ zend_double_to_str()

ZEND_API zend_string *ZEND_FASTCALL zend_double_to_str ( double num)

Definition at line 3502 of file zend_operators.c.

◆ zend_dval_to_lval_slow()

ZEND_API zend_long ZEND_FASTCALL zend_dval_to_lval_slow ( double d)

Definition at line 3755 of file zend_operators.c.

◆ zend_i64_to_str()

ZEND_API zend_string *ZEND_FASTCALL zend_i64_to_str ( int64_t num)

Definition at line 3489 of file zend_operators.c.

◆ zend_incompatible_double_to_long_error()

ZEND_API void ZEND_COLD zend_incompatible_double_to_long_error ( double d)

Definition at line 892 of file zend_operators.c.

◆ zend_incompatible_string_to_long_error()

ZEND_API void ZEND_COLD zend_incompatible_string_to_long_error ( const zend_string * s)

Definition at line 896 of file zend_operators.c.

◆ zend_is_identical()

ZEND_API bool ZEND_FASTCALL zend_is_identical ( const zval * op1,
const zval * op2 )

Definition at line 2387 of file zend_operators.c.

◆ zend_is_true()

ZEND_API bool ZEND_FASTCALL zend_is_true ( const zval * op)

Definition at line 2819 of file zend_operators.c.

◆ zend_long_to_str()

ZEND_API zend_string *ZEND_FASTCALL zend_long_to_str ( zend_long num)

Definition at line 3418 of file zend_operators.c.

◆ zend_memnrstr_ex()

ZEND_API const char *ZEND_FASTCALL zend_memnrstr_ex ( const char * haystack,
const char * needle,
size_t needle_len,
const char * end )

Definition at line 3717 of file zend_operators.c.

◆ zend_memnstr_ex()

ZEND_API const char *ZEND_FASTCALL zend_memnstr_ex ( const char * haystack,
const char * needle,
size_t needle_len,
const char * end )

Definition at line 3683 of file zend_operators.c.

◆ zend_object_is_true()

ZEND_API bool ZEND_FASTCALL zend_object_is_true ( const zval * op)

Definition at line 2825 of file zend_operators.c.

◆ zend_reset_lc_ctype_locale()

ZEND_API void zend_reset_lc_ctype_locale ( void )

Definition at line 2917 of file zend_operators.c.

◆ zend_str_tolower()

ZEND_API void ZEND_FASTCALL zend_str_tolower ( char * str,
size_t length )

Definition at line 2998 of file zend_operators.c.

◆ zend_str_tolower_copy()

ZEND_API char *ZEND_FASTCALL zend_str_tolower_copy ( char * dest,
const char * source,
size_t length )

Definition at line 2970 of file zend_operators.c.

◆ zend_str_tolower_dup()

ZEND_API char *ZEND_FASTCALL zend_str_tolower_dup ( const char * source,
size_t length )

Definition at line 2986 of file zend_operators.c.

◆ zend_str_tolower_dup_ex()

ZEND_API char *ZEND_FASTCALL zend_str_tolower_dup_ex ( const char * source,
size_t length )

Definition at line 3011 of file zend_operators.c.

◆ zend_str_toupper()

ZEND_API void ZEND_FASTCALL zend_str_toupper ( char * str,
size_t length )

Definition at line 3004 of file zend_operators.c.

◆ zend_str_toupper_copy()

ZEND_API char *ZEND_FASTCALL zend_str_toupper_copy ( char * dest,
const char * source,
size_t length )

Definition at line 2978 of file zend_operators.c.

◆ zend_str_toupper_dup()

ZEND_API char *ZEND_FASTCALL zend_str_toupper_dup ( const char * source,
size_t length )

Definition at line 2992 of file zend_operators.c.

◆ zend_str_toupper_dup_ex()

ZEND_API char *ZEND_FASTCALL zend_str_toupper_dup_ex ( const char * source,
size_t length )

Definition at line 3035 of file zend_operators.c.

◆ zend_string_only_has_ascii_alphanumeric()

ZEND_API bool zend_string_only_has_ascii_alphanumeric ( const zend_string * str)

Definition at line 2508 of file zend_operators.c.

◆ zend_string_tolower_ex()

ZEND_API zend_string *ZEND_FASTCALL zend_string_tolower_ex ( zend_string * str,
bool persistent )

Definition at line 3059 of file zend_operators.c.

◆ zend_string_toupper_ex()

ZEND_API zend_string *ZEND_FASTCALL zend_string_toupper_ex ( zend_string * str,
bool persistent )

Definition at line 3108 of file zend_operators.c.

◆ zend_u64_to_str()

ZEND_API zend_string *ZEND_FASTCALL zend_u64_to_str ( uint64_t num)

Definition at line 3476 of file zend_operators.c.

◆ zend_ulong_to_str()

ZEND_API zend_string *ZEND_FASTCALL zend_ulong_to_str ( zend_ulong num)

Definition at line 3432 of file zend_operators.c.

◆ zend_update_current_locale()

ZEND_API void zend_update_current_locale ( void )

Definition at line 2837 of file zend_operators.c.

◆ zendi_smart_strcmp()

ZEND_API int ZEND_FASTCALL zendi_smart_strcmp ( zend_string * s1,
zend_string * s2 )

Definition at line 3335 of file zend_operators.c.

◆ zendi_smart_streq()

ZEND_API bool ZEND_FASTCALL zendi_smart_streq ( zend_string * s1,
zend_string * s2 )

Definition at line 3287 of file zend_operators.c.

◆ zval_get_double_func()

ZEND_API double ZEND_FASTCALL zval_get_double_func ( const zval * op)

Definition at line 971 of file zend_operators.c.

◆ zval_get_long_func()

ZEND_API zend_long ZEND_FASTCALL zval_get_long_func ( const zval * op,
bool is_strict )

Definition at line 901 of file zend_operators.c.

◆ zval_get_string_func()

ZEND_API zend_string *ZEND_FASTCALL zval_get_string_func ( zval * op)

Definition at line 1051 of file zend_operators.c.

◆ zval_try_get_long()

ZEND_API zend_long ZEND_FASTCALL zval_try_get_long ( const zval * op,
bool * failed )

Definition at line 456 of file zend_operators.c.

◆ zval_try_get_string_func()

ZEND_API zend_string *ZEND_FASTCALL zval_try_get_string_func ( zval * op)

Definition at line 1057 of file zend_operators.c.

Variable Documentation

◆ zend_tolower_map

ZEND_API const unsigned char zend_tolower_map[256]
Initial value:
= {
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x5b,0x5c,0x5d,0x5e,0x5f,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
}

Definition at line 136 of file zend_operators.c.

◆ zend_toupper_map

ZEND_API const unsigned char zend_toupper_map[256]
Initial value:
= {
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x7b,0x7c,0x7d,0x7e,0x7f,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff
}

Definition at line 155 of file zend_operators.c.