mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Define Stringable with __toString():string method
This commit is contained in:
parent
c06850b9fa
commit
9e775db025
36 changed files with 282 additions and 263 deletions
|
@ -64,6 +64,6 @@ try {
|
|||
--EXPECT--
|
||||
Hello World!
|
||||
===NONE===
|
||||
Method NoneTest::__toString() must return a string value
|
||||
Return value of NoneTest::__toString() must be of type string, none returned
|
||||
===THROW===
|
||||
This is an error!
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
// Observer objects for the Zend/tests/list_keyed_evaluation_order.* tests
|
||||
|
||||
class Stringable
|
||||
class StringCapable
|
||||
{
|
||||
private $name;
|
||||
public function __construct(string $name) {
|
||||
|
|
|
@ -5,8 +5,8 @@ list() with keys, evaluation order
|
|||
|
||||
require_once "list_keyed_evaluation_order.inc";
|
||||
|
||||
$a = new Stringable("A");
|
||||
$c = new Stringable("C");
|
||||
$a = new StringCapable("A");
|
||||
$c = new StringCapable("C");
|
||||
|
||||
$e = new IndexableRetrievable("E", new Indexable(["A" => "value for offset A", "C" => "value for offset C"]));
|
||||
|
||||
|
|
|
@ -5,11 +5,11 @@ list() with keys, evaluation order: nested
|
|||
|
||||
require_once "list_keyed_evaluation_order.inc";
|
||||
|
||||
$a = new Stringable("A");
|
||||
$c = new Stringable("C");
|
||||
$f = new Stringable("F");
|
||||
$g = new Stringable("G");
|
||||
$i = new Stringable("I");
|
||||
$a = new StringCapable("A");
|
||||
$c = new StringCapable("C");
|
||||
$f = new StringCapable("F");
|
||||
$g = new StringCapable("G");
|
||||
$i = new StringCapable("I");
|
||||
|
||||
$k = new IndexableRetrievable("K", new Indexable([
|
||||
"A" => "offset value for A",
|
||||
|
|
|
@ -19,7 +19,7 @@ $functions = [
|
|||
'bool' => function (bool $b) { return $b; }
|
||||
];
|
||||
|
||||
class Stringable {
|
||||
class StringCapable implements Stringable {
|
||||
public function __toString() {
|
||||
return "foobar";
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ $values = [
|
|||
NULL,
|
||||
[],
|
||||
new StdClass,
|
||||
new Stringable,
|
||||
new StringCapable,
|
||||
fopen("data:text/plain,foobar", "r")
|
||||
];
|
||||
|
||||
|
@ -106,7 +106,7 @@ int(0)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($i) must be of type int, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#%s (0) {
|
||||
*** Trying object(StringCapable)#%s (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($i) must be of type int, object given, called in %s on line %d
|
||||
|
||||
|
@ -160,7 +160,7 @@ float(0)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($f) must be of type float, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#%s (0) {
|
||||
*** Trying object(StringCapable)#%s (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($f) must be of type float, object given, called in %s on line %d
|
||||
|
||||
|
@ -213,7 +213,7 @@ string(0) ""
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($s) must be of type string, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#%s (0) {
|
||||
*** Trying object(StringCapable)#%s (0) {
|
||||
}
|
||||
string(6) "foobar"
|
||||
|
||||
|
@ -266,7 +266,7 @@ bool(false)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($b) must be of type bool, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#%s (0) {
|
||||
*** Trying object(StringCapable)#%s (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($b) must be of type bool, object given, called in %s on line %d
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ $functions = [
|
|||
'bool' => function ($b): bool { return $b; }
|
||||
];
|
||||
|
||||
class Stringable {
|
||||
class StringCapable {
|
||||
public function __toString() {
|
||||
return "foobar";
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ $values = [
|
|||
NULL,
|
||||
[],
|
||||
new StdClass,
|
||||
new Stringable,
|
||||
new StringCapable,
|
||||
fopen("data:text/plain,foobar", "r")
|
||||
];
|
||||
|
||||
|
@ -94,7 +94,7 @@ int(0)
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type int, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type int, object returned in %s on line %d
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
@ -132,7 +132,7 @@ float(0)
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type float, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type float, object returned in %s on line %d
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
@ -169,7 +169,7 @@ string(0) ""
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type string, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
string(6) "foobar"
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
@ -206,7 +206,7 @@ bool(false)
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type bool, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type bool, object returned in %s on line %d
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
|
|
@ -21,7 +21,7 @@ $functions = [
|
|||
'bool' => function ($b): bool { return $b; }
|
||||
];
|
||||
|
||||
class Stringable {
|
||||
class StringCapable {
|
||||
public function __toString() {
|
||||
return "foobar";
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ $values = [
|
|||
NULL,
|
||||
[],
|
||||
new StdClass,
|
||||
new Stringable,
|
||||
new StringCapable,
|
||||
fopen("data:text/plain,foobar", "r")
|
||||
];
|
||||
|
||||
|
@ -94,7 +94,7 @@ int(0)
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type int, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type int, object returned in %s on line %d
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
@ -132,7 +132,7 @@ float(0)
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type float, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type float, object returned in %s on line %d
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
@ -169,7 +169,7 @@ string(0) ""
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type string, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
string(6) "foobar"
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
@ -206,7 +206,7 @@ bool(false)
|
|||
*** Trying object(stdClass)#6 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type bool, object returned in %s on line %d
|
||||
*** Trying object(Stringable)#7 (0) {
|
||||
*** Trying object(StringCapable)#7 (0) {
|
||||
}
|
||||
*** Caught Return value of {closure}() must be of type bool, object returned in %s on line %d
|
||||
*** Trying resource(5) of type (stream)
|
||||
|
|
|
@ -13,7 +13,7 @@ $functions = [
|
|||
'bool' => function (bool $b) { return $b; }
|
||||
];
|
||||
|
||||
class Stringable {
|
||||
class StringCapable {
|
||||
public function __toString() {
|
||||
return "foobar";
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ $values = [
|
|||
NULL,
|
||||
[],
|
||||
new StdClass,
|
||||
new Stringable,
|
||||
new StringCapable,
|
||||
fopen("data:text/plain,foobar", "r")
|
||||
];
|
||||
|
||||
|
@ -100,7 +100,7 @@ int(2147483647)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($i) must be of type int, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($i) must be of type int, object given, called in %s on line %d
|
||||
|
||||
|
@ -153,7 +153,7 @@ float(NAN)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($f) must be of type float, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($f) must be of type float, object given, called in %s on line %d
|
||||
|
||||
|
@ -206,7 +206,7 @@ string(0) ""
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($s) must be of type string, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($s) must be of type string, object given, called in %s on line %d
|
||||
|
||||
|
@ -259,7 +259,7 @@ bool(false)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($b) must be of type bool, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($b) must be of type bool, object given, called in %s on line %d
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ $functions = [
|
|||
'bool' => function (bool $b) { return $b; }
|
||||
];
|
||||
|
||||
class Stringable {
|
||||
class StringCapable {
|
||||
public function __toString() {
|
||||
return "foobar";
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ $values = [
|
|||
NULL,
|
||||
[],
|
||||
new StdClass,
|
||||
new Stringable,
|
||||
new StringCapable,
|
||||
fopen("data:text/plain,foobar", "r")
|
||||
];
|
||||
|
||||
|
@ -100,7 +100,7 @@ int(9223372036854775807)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($i) must be of type int, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($i) must be of type int, object given, called in %s on line %d
|
||||
|
||||
|
@ -153,7 +153,7 @@ float(NAN)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($f) must be of type float, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($f) must be of type float, object given, called in %s on line %d
|
||||
|
||||
|
@ -206,7 +206,7 @@ string(0) ""
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($s) must be of type string, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($s) must be of type string, object given, called in %s on line %d
|
||||
|
||||
|
@ -259,7 +259,7 @@ bool(false)
|
|||
}
|
||||
*** Caught {closure}(): Argument #1 ($b) must be of type bool, object given, called in %s on line %d
|
||||
|
||||
*** Trying object(Stringable)#6 (0) {
|
||||
*** Trying object(StringCapable)#6 (0) {
|
||||
}
|
||||
*** Caught {closure}(): Argument #1 ($b) must be of type bool, object given, called in %s on line %d
|
||||
|
||||
|
|
|
@ -5714,7 +5714,7 @@ static zend_bool zend_is_valid_default_value(zend_type type, zval *value)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void zend_compile_params(zend_ast *ast, zend_ast *return_type_ast) /* {{{ */
|
||||
void zend_compile_params(zend_ast *ast, zend_ast *return_type_ast, uint32_t fallback_return_type) /* {{{ */
|
||||
{
|
||||
zend_ast_list *list = zend_ast_get_list(ast);
|
||||
uint32_t i;
|
||||
|
@ -5722,14 +5722,18 @@ void zend_compile_params(zend_ast *ast, zend_ast *return_type_ast) /* {{{ */
|
|||
zend_arg_info *arg_infos;
|
||||
zend_string *optional_param = NULL;
|
||||
|
||||
if (return_type_ast) {
|
||||
if (return_type_ast || fallback_return_type) {
|
||||
/* Use op_array->arg_info[-1] for return type */
|
||||
arg_infos = safe_emalloc(sizeof(zend_arg_info), list->children + 1, 0);
|
||||
arg_infos->name = NULL;
|
||||
arg_infos->type = zend_compile_typename(
|
||||
return_type_ast, /* force_allow_null */ 0, /* use_arena */ 0);
|
||||
ZEND_TYPE_FULL_MASK(arg_infos->type) |= _ZEND_ARG_INFO_FLAGS(
|
||||
(op_array->fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0, /* is_variadic */ 0);
|
||||
if (return_type_ast) {
|
||||
arg_infos->type = zend_compile_typename(
|
||||
return_type_ast, /* force_allow_null */ 0, /* use_arena */ 0);
|
||||
ZEND_TYPE_FULL_MASK(arg_infos->type) |= _ZEND_ARG_INFO_FLAGS(
|
||||
(op_array->fn_flags & ZEND_ACC_RETURN_REFERENCE) != 0, /* is_variadic */ 0);
|
||||
} else {
|
||||
arg_infos->type = (zend_type) ZEND_TYPE_INIT_CODE(fallback_return_type, 0, 0);
|
||||
}
|
||||
arg_infos++;
|
||||
op_array->fn_flags |= ZEND_ACC_HAS_RETURN_TYPE;
|
||||
} else {
|
||||
|
@ -6294,7 +6298,8 @@ void zend_compile_func_decl(znode *result, zend_ast *ast, zend_bool toplevel) /*
|
|||
zend_stack_push(&CG(loop_var_stack), (void *) &dummy_var);
|
||||
}
|
||||
|
||||
zend_compile_params(params_ast, return_type_ast);
|
||||
zend_compile_params(params_ast, return_type_ast,
|
||||
is_method && zend_string_equals_literal_ci(decl->name, "__toString") ? IS_STRING : 0);
|
||||
if (CG(active_op_array)->fn_flags & ZEND_ACC_GENERATOR) {
|
||||
zend_mark_function_as_generator();
|
||||
zend_emit_op(NULL, ZEND_GENERATOR_CREATE, NULL, NULL);
|
||||
|
|
|
@ -763,7 +763,6 @@ static const zend_function_entry zend_funcs_throwable[] = {
|
|||
ZEND_ABSTRACT_ME(throwable, getTrace, arginfo_class_Throwable_getTrace)
|
||||
ZEND_ABSTRACT_ME(throwable, getPrevious, arginfo_class_Throwable_getPrevious)
|
||||
ZEND_ABSTRACT_ME(throwable, getTraceAsString, arginfo_class_Throwable_getTraceAsString)
|
||||
ZEND_ABSTRACT_ME(throwable, __toString, arginfo_class_Throwable___toString)
|
||||
ZEND_FE_END
|
||||
};
|
||||
/* }}} */
|
||||
|
@ -805,6 +804,7 @@ void zend_register_default_exception(void) /* {{{ */
|
|||
zend_class_entry ce;
|
||||
|
||||
REGISTER_MAGIC_INTERFACE(throwable, Throwable);
|
||||
zend_class_implements(zend_ce_throwable, 1, zend_ce_stringable);
|
||||
|
||||
memcpy(&default_exception_handlers, &std_object_handlers, sizeof(zend_object_handlers));
|
||||
default_exception_handlers.clone_obj = NULL;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
interface Throwable
|
||||
interface Throwable extends Stringable
|
||||
{
|
||||
/** @return string */
|
||||
function getMessage();
|
||||
|
@ -22,9 +22,6 @@ interface Throwable
|
|||
|
||||
/** @return string */
|
||||
function getTraceAsString();
|
||||
|
||||
/** @return string */
|
||||
function __toString();
|
||||
}
|
||||
|
||||
class Exception implements Throwable
|
||||
|
@ -56,8 +53,7 @@ class Exception implements Throwable
|
|||
/** @return string */
|
||||
final function getTraceAsString() {}
|
||||
|
||||
/** @return string */
|
||||
function __toString() {}
|
||||
function __toString(): string {}
|
||||
}
|
||||
|
||||
class ErrorException extends Exception
|
||||
|
|
|
@ -15,8 +15,6 @@ ZEND_END_ARG_INFO()
|
|||
|
||||
#define arginfo_class_Throwable_getTraceAsString arginfo_class_Throwable_getMessage
|
||||
|
||||
#define arginfo_class_Throwable___toString arginfo_class_Throwable_getMessage
|
||||
|
||||
#define arginfo_class_Exception___clone arginfo_class_Throwable_getMessage
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Exception___construct, 0, 0, 0)
|
||||
|
@ -41,7 +39,8 @@ ZEND_END_ARG_INFO()
|
|||
|
||||
#define arginfo_class_Exception_getTraceAsString arginfo_class_Throwable_getMessage
|
||||
|
||||
#define arginfo_class_Exception___toString arginfo_class_Throwable_getMessage
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Exception___toString, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ErrorException___construct, 0, 0, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0)
|
||||
|
|
|
@ -28,6 +28,7 @@ ZEND_API zend_class_entry *zend_ce_iterator;
|
|||
ZEND_API zend_class_entry *zend_ce_arrayaccess;
|
||||
ZEND_API zend_class_entry *zend_ce_serializable;
|
||||
ZEND_API zend_class_entry *zend_ce_countable;
|
||||
ZEND_API zend_class_entry *zend_ce_stringable;
|
||||
|
||||
/* {{{ zend_call_method
|
||||
Only returns the returned zval if retval_ptr != NULL */
|
||||
|
@ -567,6 +568,11 @@ static const zend_function_entry zend_funcs_countable[] = {
|
|||
ZEND_ABSTRACT_ME(Countable, count, arginfo_class_Countable_count)
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
static const zend_function_entry zend_funcs_stringable[] = {
|
||||
ZEND_ABSTRACT_ME(Stringable, __toString, arginfo_class_Stringable___toString)
|
||||
ZEND_FE_END
|
||||
};
|
||||
/* }}} */
|
||||
|
||||
/* {{{ zend_register_interfaces */
|
||||
|
@ -585,5 +591,9 @@ ZEND_API void zend_register_interfaces(void)
|
|||
REGISTER_MAGIC_INTERFACE(serializable, Serializable);
|
||||
|
||||
REGISTER_MAGIC_INTERFACE(countable, Countable);
|
||||
|
||||
zend_class_entry ce;
|
||||
INIT_CLASS_ENTRY(ce, "Stringable", zend_funcs_stringable);
|
||||
zend_ce_stringable = zend_register_internal_interface(&ce);
|
||||
}
|
||||
/* }}} */
|
||||
|
|
|
@ -30,6 +30,7 @@ extern ZEND_API zend_class_entry *zend_ce_iterator;
|
|||
extern ZEND_API zend_class_entry *zend_ce_arrayaccess;
|
||||
extern ZEND_API zend_class_entry *zend_ce_serializable;
|
||||
extern ZEND_API zend_class_entry *zend_ce_countable;
|
||||
extern ZEND_API zend_class_entry *zend_ce_stringable;
|
||||
|
||||
typedef struct _zend_user_iterator {
|
||||
zend_object_iterator it;
|
||||
|
|
|
@ -49,3 +49,8 @@ interface Countable
|
|||
/** @return int */
|
||||
function count();
|
||||
}
|
||||
|
||||
interface Stringable
|
||||
{
|
||||
function __toString(): string;
|
||||
}
|
||||
|
|
|
@ -33,3 +33,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Serializable_unserialize, 0, 0, 1)
|
|||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_Countable_count arginfo_class_IteratorAggregate_getIterator
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Stringable___toString, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
|
|
@ -6214,7 +6214,6 @@ static const zend_function_entry reflection_functions[] = {
|
|||
};
|
||||
|
||||
static const zend_function_entry reflector_functions[] = {
|
||||
ZEND_ABSTRACT_ME(reflector, __toString, arginfo_class_Reflector___toString)
|
||||
PHP_FE_END
|
||||
};
|
||||
|
||||
|
@ -6522,6 +6521,7 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
|
|||
|
||||
INIT_CLASS_ENTRY(_reflection_entry, "Reflector", reflector_functions);
|
||||
reflector_ptr = zend_register_internal_interface(&_reflection_entry);
|
||||
zend_class_implements(reflector_ptr, 1, zend_ce_stringable);
|
||||
|
||||
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionFunctionAbstract", reflection_function_abstract_functions);
|
||||
reflection_init_class_handlers(&_reflection_entry);
|
||||
|
@ -6550,6 +6550,7 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
|
|||
reflection_init_class_handlers(&_reflection_entry);
|
||||
reflection_type_ptr = zend_register_internal_class(&_reflection_entry);
|
||||
reflection_type_ptr->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
|
||||
zend_class_implements(reflection_type_ptr, 1, zend_ce_stringable);
|
||||
|
||||
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionNamedType", reflection_named_type_functions);
|
||||
reflection_init_class_handlers(&_reflection_entry);
|
||||
|
|
|
@ -10,10 +10,8 @@ class Reflection
|
|||
public static function getModifierNames(int $modifiers) {}
|
||||
}
|
||||
|
||||
interface Reflector
|
||||
interface Reflector extends Stringable
|
||||
{
|
||||
/** @return string */
|
||||
public function __toString();
|
||||
}
|
||||
|
||||
abstract class ReflectionFunctionAbstract implements Reflector
|
||||
|
@ -101,8 +99,7 @@ class ReflectionFunction extends ReflectionFunctionAbstract
|
|||
/** @param string|Closure $name */
|
||||
public function __construct($name) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return bool */
|
||||
public function isDisabled() {}
|
||||
|
@ -143,8 +140,7 @@ class ReflectionMethod extends ReflectionFunctionAbstract
|
|||
/** @param object|string $class_or_method */
|
||||
public function __construct($class_or_method, string $name = UNKNOWN) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return bool */
|
||||
public function isPublic() {}
|
||||
|
@ -197,8 +193,7 @@ class ReflectionClass implements Reflector
|
|||
/** @param object|string $argument */
|
||||
public function __construct($argument) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return string|false */
|
||||
public function getName() {}
|
||||
|
@ -367,8 +362,7 @@ class ReflectionProperty implements Reflector
|
|||
/** @param string|object $class */
|
||||
public function __construct($class, string $name) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return string|false */
|
||||
public function getName() {}
|
||||
|
@ -427,8 +421,7 @@ class ReflectionClassConstant implements Reflector
|
|||
/** @return string|object */
|
||||
public function __construct($class, string $name) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return string|false */
|
||||
public function getName() {}
|
||||
|
@ -464,8 +457,7 @@ class ReflectionParameter implements Reflector
|
|||
*/
|
||||
public function __construct($function, $parameter) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return string|false */
|
||||
public function getName() {}
|
||||
|
@ -521,15 +513,14 @@ class ReflectionParameter implements Reflector
|
|||
public function isVariadic() {}
|
||||
}
|
||||
|
||||
abstract class ReflectionType
|
||||
abstract class ReflectionType implements Stringable
|
||||
{
|
||||
final private function __clone() {}
|
||||
|
||||
/** @return bool */
|
||||
public function allowsNull() {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
}
|
||||
|
||||
class ReflectionNamedType extends ReflectionType
|
||||
|
@ -552,8 +543,7 @@ class ReflectionExtension implements Reflector
|
|||
|
||||
public function __construct(string $name) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return string|false */
|
||||
public function getName() {}
|
||||
|
@ -595,8 +585,7 @@ class ReflectionZendExtension implements Reflector
|
|||
|
||||
public function __construct(string $name) {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return string */
|
||||
public function getName() {}
|
||||
|
|
|
@ -4,68 +4,67 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Reflection_getModifierNames, 0, 0, 1)
|
|||
ZEND_ARG_TYPE_INFO(0, modifiers, IS_LONG, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Reflector___toString, 0, 0, 0)
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionFunctionAbstract___clone, 0, 0, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_inNamespace arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_inNamespace arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isClosure arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isClosure arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isDeprecated arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isDeprecated arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isInternal arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isInternal arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isUserDefined arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isUserDefined arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isGenerator arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isGenerator arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isVariadic arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_isVariadic arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getClosureThis arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getClosureThis arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getClosureScopeClass arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getClosureScopeClass arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getDocComment arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getDocComment arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getEndLine arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getEndLine arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getExtension arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getExtension arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getExtensionName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getExtensionName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getFileName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getFileName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getNamespaceName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getNamespaceName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getNumberOfParameters arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getNumberOfParameters arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getNumberOfRequiredParameters arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getNumberOfRequiredParameters arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getParameters arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getParameters arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getShortName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getShortName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getStartLine arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getStartLine arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getStaticVariables arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getStaticVariables arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_returnsReference arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_returnsReference arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_hasReturnType arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_hasReturnType arginfo_class_Reflector___toString
|
||||
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getReturnType arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunctionAbstract_getReturnType arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionFunction___construct, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, name)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionFunction___toString arginfo_class_Reflector___toString
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_ReflectionFunction___toString, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionFunction_isDisabled arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunction_isDisabled arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionFunction_invoke, 0, 0, 0)
|
||||
ZEND_ARG_VARIADIC_INFO(0, args)
|
||||
|
@ -75,54 +74,54 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionFunction_invokeArgs, 0, 0, 1)
|
|||
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionFunction_getClosure arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionFunction_getClosure arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionGenerator___construct, 0, 0, 1)
|
||||
ZEND_ARG_OBJ_INFO(0, generator, Generator, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionGenerator_getExecutingLine arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionGenerator_getExecutingLine arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionGenerator_getExecutingFile arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionGenerator_getExecutingFile arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionGenerator_getTrace, 0, 0, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, options, IS_LONG, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionGenerator_getFunction arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionGenerator_getFunction arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionGenerator_getThis arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionGenerator_getThis arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionGenerator_getExecutingGenerator arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionGenerator_getExecutingGenerator arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionMethod___construct, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, class_or_method)
|
||||
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionMethod___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isPublic arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isPublic arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isPrivate arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isPrivate arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isProtected arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isProtected arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isAbstract arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isAbstract arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isFinal arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isFinal arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isStatic arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isStatic arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isConstructor arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isConstructor arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_isDestructor arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_isDestructor arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionMethod_getClosure, 0, 0, 0)
|
||||
ZEND_ARG_INFO(0, object)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionMethod_getModifiers arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_getModifiers arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionMethod_invoke, 0, 0, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 1)
|
||||
|
@ -134,43 +133,43 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionMethod_invokeArgs, 0, 0, 2)
|
|||
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionMethod_getDeclaringClass arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_getDeclaringClass arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionMethod_getPrototype arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionMethod_getPrototype arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionMethod_setAccessible, 0, 0, 1)
|
||||
ZEND_ARG_TYPE_INFO(0, visible, _IS_BOOL, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionClass___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass___construct, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, argument)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionClass___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionClass_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isInternal arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isInternal arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isUserDefined arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isUserDefined arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isAnonymous arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isAnonymous arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isInstantiable arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isInstantiable arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isCloneable arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isCloneable arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getFileName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getFileName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getStartLine arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getStartLine arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getEndLine arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getEndLine arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getDocComment arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getDocComment arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getConstructor arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getConstructor arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_hasMethod, 0, 0, 1)
|
||||
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
|
||||
|
@ -190,33 +189,33 @@ ZEND_END_ARG_INFO()
|
|||
|
||||
#define arginfo_class_ReflectionClass_hasConstant arginfo_class_ReflectionClass_hasMethod
|
||||
|
||||
#define arginfo_class_ReflectionClass_getConstants arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getConstants arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getReflectionConstants arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getReflectionConstants arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getConstant arginfo_class_ReflectionClass_hasMethod
|
||||
|
||||
#define arginfo_class_ReflectionClass_getReflectionConstant arginfo_class_ReflectionClass_hasMethod
|
||||
|
||||
#define arginfo_class_ReflectionClass_getInterfaces arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getInterfaces arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getInterfaceNames arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getInterfaceNames arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isInterface arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isInterface arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getTraits arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getTraits arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getTraitNames arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getTraitNames arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getTraitAliases arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getTraitAliases arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isTrait arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isTrait arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isAbstract arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isAbstract arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isFinal arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isFinal arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getModifiers arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getModifiers arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_isIntance, 0, 0, 1)
|
||||
ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
|
||||
|
@ -224,19 +223,19 @@ ZEND_END_ARG_INFO()
|
|||
|
||||
#define arginfo_class_ReflectionClass_newInstance arginfo_class_ReflectionFunction_invoke
|
||||
|
||||
#define arginfo_class_ReflectionClass_newInstanceWithoutConstructor arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_newInstanceWithoutConstructor arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_newInstanceArgs, 0, 0, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionClass_getParentClass arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getParentClass arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_isSubclassOf, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, class)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionClass_getStaticProperties arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getStaticProperties arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_getStaticPropertyValue, 0, 0, 1)
|
||||
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
|
||||
|
@ -248,40 +247,40 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_setStaticPropertyValue, 0,
|
|||
ZEND_ARG_INFO(0, value)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionClass_getDefaultProperties arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getDefaultProperties arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isIterable arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isIterable arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_isIterateable arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_isIterateable arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_implementsInterface, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, interface)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionClass_getExtension arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getExtension arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getExtensionName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getExtensionName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_inNamespace arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_inNamespace arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getNamespaceName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getNamespaceName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClass_getShortName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClass_getShortName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionObject___construct, 0, 0, 1)
|
||||
ZEND_ARG_TYPE_INFO(0, argument, IS_OBJECT, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionProperty___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionProperty___construct, 0, 0, 2)
|
||||
ZEND_ARG_INFO(0, class)
|
||||
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionProperty___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionProperty_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionProperty_getValue, 0, 0, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 1)
|
||||
|
@ -294,156 +293,156 @@ ZEND_END_ARG_INFO()
|
|||
|
||||
#define arginfo_class_ReflectionProperty_isInitialized arginfo_class_ReflectionProperty_getValue
|
||||
|
||||
#define arginfo_class_ReflectionProperty_isPublic arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_isPublic arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_isPrivate arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_isPrivate arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_isProtected arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_isProtected arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_isStatic arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_isStatic arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_isDefault arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_isDefault arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_getModifiers arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_getModifiers arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_getDeclaringClass arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_getDeclaringClass arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_getDocComment arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_getDocComment arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_setAccessible arginfo_class_ReflectionMethod_setAccessible
|
||||
|
||||
#define arginfo_class_ReflectionProperty_getType arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_getType arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionProperty_hasType arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_hasType arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_ReflectionProperty_hasDefaultValue, 0, 0, _IS_BOOL, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionProperty_getDefaultValue arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionProperty_getDefaultValue arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant___construct arginfo_class_ReflectionProperty___construct
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_getValue arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_getValue arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_isPublic arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_isPublic arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_isPrivate arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_isPrivate arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_isProtected arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_isProtected arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_getModifiers arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_getModifiers arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_getDeclaringClass arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_getDeclaringClass arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionClassConstant_getDocComment arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionClassConstant_getDocComment arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionParameter___construct, 0, 0, 2)
|
||||
ZEND_ARG_INFO(0, function)
|
||||
ZEND_ARG_INFO(0, parameter)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionParameter___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_isPassedByReference arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_isPassedByReference arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_canBePassedByValue arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_canBePassedByValue arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getDeclaringFunction arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getDeclaringFunction arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getDeclaringClass arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getDeclaringClass arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getClass arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getClass arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_hasType arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_hasType arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getType arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getType arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_isArray arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_isArray arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_isCallable arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_isCallable arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_allowsNull arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_allowsNull arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getPosition arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getPosition arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_isOptional arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_isOptional arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_isDefaultValueAvailable arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_isDefaultValueAvailable arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getDefaultValue arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getDefaultValue arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_isDefaultValueConstant arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_isDefaultValueConstant arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_getDefaultValueConstantName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_getDefaultValueConstantName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionParameter_isVariadic arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionParameter_isVariadic arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionType___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionType___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionType_allowsNull arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionType_allowsNull arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionType___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionType___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionNamedType_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionNamedType_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionNamedType_isBuiltin arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionNamedType_isBuiltin arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_ReflectionUnionType_getTypes, 0, 0, IS_ARRAY, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionExtension___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension___construct arginfo_class_ReflectionClass_hasMethod
|
||||
|
||||
#define arginfo_class_ReflectionExtension___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getVersion arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getVersion arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getFunctions arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getFunctions arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getConstants arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getConstants arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getINIEntries arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getINIEntries arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getClasses arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getClasses arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getClassNames arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getClassNames arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_getDependencies arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_getDependencies arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_info arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_info arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_isPersistent arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_isPersistent arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionExtension_isTemporary arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionExtension_isTemporary arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionZendExtension___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension___construct arginfo_class_ReflectionClass_hasMethod
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension___toString arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionZendExtension___toString arginfo_class_ReflectionFunction___toString
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension_getName arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionZendExtension_getName arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension_getVersion arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionZendExtension_getVersion arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension_getAuthor arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionZendExtension_getAuthor arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension_getURL arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionZendExtension_getURL arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionZendExtension_getCopyright arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionZendExtension_getCopyright arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_ReflectionReference_fromArrayElement, 0, 2, ReflectionReference, 1)
|
||||
ZEND_ARG_TYPE_INFO(0, array, IS_ARRAY, 0)
|
||||
|
@ -453,6 +452,6 @@ ZEND_END_ARG_INFO()
|
|||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_ReflectionReference_getId, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_ReflectionReference___clone arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionReference___clone arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
||||
#define arginfo_class_ReflectionReference___construct arginfo_class_Reflector___toString
|
||||
#define arginfo_class_ReflectionReference___construct arginfo_class_ReflectionFunctionAbstract___clone
|
||||
|
|
|
@ -9,7 +9,7 @@ $rc = new ReflectionClass("ReflectionClass");
|
|||
echo $rc;
|
||||
?>
|
||||
--EXPECT--
|
||||
Class [ <internal:Reflection> class ReflectionClass implements Reflector ] {
|
||||
Class [ <internal:Reflection> class ReflectionClass implements Reflector, Stringable ] {
|
||||
|
||||
- Constants [3] {
|
||||
Constant [ public int IS_IMPLICIT_ABSTRACT ] { 16 }
|
||||
|
@ -41,10 +41,11 @@ Class [ <internal:Reflection> class ReflectionClass implements Reflector ] {
|
|||
}
|
||||
}
|
||||
|
||||
Method [ <internal:Reflection, prototype Reflector> public method __toString ] {
|
||||
Method [ <internal:Reflection, prototype Stringable> public method __toString ] {
|
||||
|
||||
- Parameters [0] {
|
||||
}
|
||||
- Return [ string ]
|
||||
}
|
||||
|
||||
Method [ <internal:Reflection> public method getName ] {
|
||||
|
|
|
@ -2633,7 +2633,7 @@ PHP_MINIT_FUNCTION(simplexml)
|
|||
sxe.create_object = sxe_object_new;
|
||||
sxe_class_entry = zend_register_internal_class(&sxe);
|
||||
sxe_class_entry->get_iterator = php_sxe_get_iterator;
|
||||
zend_class_implements(sxe_class_entry, 2, zend_ce_traversable, zend_ce_countable);
|
||||
zend_class_implements(sxe_class_entry, 3, zend_ce_traversable, zend_ce_countable, zend_ce_stringable);
|
||||
|
||||
memcpy(&sxe_object_handlers, &std_object_handlers, sizeof(zend_object_handlers));
|
||||
sxe_object_handlers.offset = XtOffsetOf(php_sxe_object, zo);
|
||||
|
|
|
@ -6,7 +6,7 @@ function simplexml_load_string(string $data, ?string $class_name = SimpleXMLElem
|
|||
|
||||
function simplexml_import_dom(DOMNode $node, ?string $class_name = SimpleXMLElement::class): ?SimpleXMLElement {}
|
||||
|
||||
class SimpleXMLElement
|
||||
class SimpleXMLElement implements Stringable
|
||||
{
|
||||
/** @return array|false */
|
||||
public function xpath(string $path) {}
|
||||
|
@ -43,8 +43,7 @@ class SimpleXMLElement
|
|||
/** @return string */
|
||||
public function getName() {}
|
||||
|
||||
/** @return string */
|
||||
public function __toString() {}
|
||||
public function __toString(): string {}
|
||||
|
||||
/** @return int */
|
||||
public function count() {}
|
||||
|
|
|
@ -71,6 +71,7 @@ ZEND_END_ARG_INFO()
|
|||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SimpleXMLElement_getName, 0, 0, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_SimpleXMLElement___toString arginfo_class_SimpleXMLElement_getName
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_SimpleXMLElement___toString, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_SimpleXMLElement_count arginfo_class_SimpleXMLElement_getName
|
||||
|
|
|
@ -18,8 +18,7 @@ class SoapFault extends Exception
|
|||
{
|
||||
function __construct($faultcode, string $faultstring, ?string $faultactor = null, $detail = null, ?string $faultname = null, $headerfault = null);
|
||||
|
||||
/** @return string */
|
||||
function __toString();
|
||||
function __toString(): string;
|
||||
}
|
||||
|
||||
class SoapVar
|
||||
|
|
|
@ -30,7 +30,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapFault___construct, 0, 0, 2)
|
|||
ZEND_ARG_INFO(0, headerfault)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapFault___toString, 0, 0, 0)
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_SoapFault___toString, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapVar___construct, 0, 0, 2)
|
||||
|
@ -72,7 +72,8 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_setObject, 0, 0, 1)
|
|||
ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_SoapServer_getFunctions arginfo_class_SoapFault___toString
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_getFunctions, 0, 0, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_addFunction, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, functions)
|
||||
|
@ -97,17 +98,17 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___soapCall, 0, 0, 2)
|
|||
ZEND_ARG_INFO(0, output_headers)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_SoapClient___getFunctions arginfo_class_SoapFault___toString
|
||||
#define arginfo_class_SoapClient___getFunctions arginfo_class_SoapServer_getFunctions
|
||||
|
||||
#define arginfo_class_SoapClient___getTypes arginfo_class_SoapFault___toString
|
||||
#define arginfo_class_SoapClient___getTypes arginfo_class_SoapServer_getFunctions
|
||||
|
||||
#define arginfo_class_SoapClient___getLastRequest arginfo_class_SoapFault___toString
|
||||
#define arginfo_class_SoapClient___getLastRequest arginfo_class_SoapServer_getFunctions
|
||||
|
||||
#define arginfo_class_SoapClient___getLastResponse arginfo_class_SoapFault___toString
|
||||
#define arginfo_class_SoapClient___getLastResponse arginfo_class_SoapServer_getFunctions
|
||||
|
||||
#define arginfo_class_SoapClient___getLastRequestHeaders arginfo_class_SoapFault___toString
|
||||
#define arginfo_class_SoapClient___getLastRequestHeaders arginfo_class_SoapServer_getFunctions
|
||||
|
||||
#define arginfo_class_SoapClient___getLastResponseHeaders arginfo_class_SoapFault___toString
|
||||
#define arginfo_class_SoapClient___getLastResponseHeaders arginfo_class_SoapServer_getFunctions
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___doRequest, 0, 0, 4)
|
||||
ZEND_ARG_TYPE_INFO(0, request, IS_STRING, 0)
|
||||
|
@ -122,7 +123,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___setCookie, 0, 0, 1)
|
|||
ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 1)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_SoapClient___getCookies arginfo_class_SoapFault___toString
|
||||
#define arginfo_class_SoapClient___getCookies arginfo_class_SoapServer_getFunctions
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___setSoapHeaders, 0, 0, 0)
|
||||
ZEND_ARG_INFO(0, soapheaders)
|
||||
|
|
|
@ -1899,6 +1899,9 @@ ZEND_END_ARG_INFO()
|
|||
ZEND_BEGIN_ARG_INFO(arginfo_splfileinfo_void, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_splfileinfo___toString, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
/* the method table */
|
||||
/* each method can have its own parameters and visibility */
|
||||
static const zend_function_entry spl_SplFileInfo_functions[] = {
|
||||
|
@ -1933,7 +1936,7 @@ static const zend_function_entry spl_SplFileInfo_functions[] = {
|
|||
SPL_ME(SplFileInfo, setFileClass, arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(SplFileInfo, setInfoClass, arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(SplFileInfo, _bad_state_ex, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL)
|
||||
SPL_MA(SplFileInfo, __toString, SplFileInfo, getPathname, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
|
||||
SPL_MA(SplFileInfo, __toString, SplFileInfo, getPathname, arginfo_splfileinfo___toString, ZEND_ACC_PUBLIC)
|
||||
PHP_FE_END
|
||||
};
|
||||
|
||||
|
@ -1959,7 +1962,7 @@ static const zend_function_entry spl_DirectoryIterator_functions[] = {
|
|||
SPL_ME(DirectoryIterator, current, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(DirectoryIterator, next, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(DirectoryIterator, seek, arginfo_dir_it_seek, ZEND_ACC_PUBLIC)
|
||||
SPL_MA(DirectoryIterator, __toString, DirectoryIterator, getFilename, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
|
||||
SPL_MA(DirectoryIterator, __toString, DirectoryIterator, getFilename, arginfo_splfileinfo___toString, ZEND_ACC_PUBLIC)
|
||||
PHP_FE_END
|
||||
};
|
||||
|
||||
|
@ -3072,7 +3075,7 @@ static const zend_function_entry spl_SplFileObject_functions[] = {
|
|||
SPL_ME(SplFileObject, seek, arginfo_file_object_seek, ZEND_ACC_PUBLIC)
|
||||
/* mappings */
|
||||
SPL_MA(SplFileObject, getCurrentLine, SplFileObject, fgets, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
|
||||
SPL_MA(SplFileObject, __toString, SplFileObject, fgets, arginfo_splfileinfo_void, ZEND_ACC_PUBLIC)
|
||||
SPL_MA(SplFileObject, __toString, SplFileObject, fgets, arginfo_splfileinfo___toString, ZEND_ACC_PUBLIC)
|
||||
PHP_FE_END
|
||||
};
|
||||
|
||||
|
@ -3100,6 +3103,7 @@ PHP_MINIT_FUNCTION(spl_directory)
|
|||
spl_filesystem_object_handlers.free_obj = spl_filesystem_object_free_storage;
|
||||
spl_ce_SplFileInfo->serialize = zend_class_serialize_deny;
|
||||
spl_ce_SplFileInfo->unserialize = zend_class_unserialize_deny;
|
||||
REGISTER_SPL_IMPLEMENTS(SplFileInfo, Stringable);
|
||||
|
||||
|
||||
REGISTER_SPL_SUB_CLASS_EX(DirectoryIterator, SplFileInfo, spl_filesystem_object_new, spl_DirectoryIterator_functions);
|
||||
|
|
|
@ -61,6 +61,9 @@ PHPAPI zend_class_entry *spl_ce_RecursiveTreeIterator;
|
|||
ZEND_BEGIN_ARG_INFO(arginfo_recursive_it_void, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_caching_it___toString, 0, 0, IS_STRING, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
static const zend_function_entry spl_funcs_RecursiveIterator[] = {
|
||||
SPL_ABSTRACT_ME(RecursiveIterator, hasChildren, arginfo_recursive_it_void)
|
||||
SPL_ABSTRACT_ME(RecursiveIterator, getChildren, arginfo_recursive_it_void)
|
||||
|
@ -2942,7 +2945,7 @@ static const zend_function_entry spl_funcs_CachingIterator[] = {
|
|||
SPL_ME(dual_it, current, arginfo_recursive_it_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(CachingIterator, next, arginfo_recursive_it_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(CachingIterator, hasNext, arginfo_recursive_it_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(CachingIterator, __toString, arginfo_recursive_it_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(CachingIterator, __toString, arginfo_caching_it___toString, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(dual_it, getInnerIterator, arginfo_recursive_it_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(CachingIterator, getFlags, arginfo_recursive_it_void, ZEND_ACC_PUBLIC)
|
||||
SPL_ME(CachingIterator, setFlags, arginfo_caching_it_setFlags, ZEND_ACC_PUBLIC)
|
||||
|
@ -3662,6 +3665,7 @@ PHP_MINIT_FUNCTION(spl_iterators)
|
|||
REGISTER_SPL_SUB_CLASS_EX(CachingIterator, IteratorIterator, spl_dual_it_new, spl_funcs_CachingIterator);
|
||||
REGISTER_SPL_IMPLEMENTS(CachingIterator, ArrayAccess);
|
||||
REGISTER_SPL_IMPLEMENTS(CachingIterator, Countable);
|
||||
REGISTER_SPL_IMPLEMENTS(CachingIterator, Stringable);
|
||||
|
||||
REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "CALL_TOSTRING", CIT_CALL_TOSTRING);
|
||||
REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "CATCH_GET_CHILD", CIT_CATCH_GET_CHILD);
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#define spl_ce_ArrayAccess zend_ce_arrayaccess
|
||||
#define spl_ce_Serializable zend_ce_serializable
|
||||
#define spl_ce_Countable zend_ce_countable
|
||||
#define spl_ce_Stringable zend_ce_stringable
|
||||
|
||||
extern PHPAPI zend_class_entry *spl_ce_RecursiveIterator;
|
||||
extern PHPAPI zend_class_entry *spl_ce_RecursiveIteratorIterator;
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -37,7 +37,7 @@ string(183) "Class [ <internal:Core> class stdClass ] {
|
|||
}
|
||||
|
||||
"
|
||||
string(1969) "Class [ <internal:Core> class Exception implements Throwable ] {
|
||||
string(2008) "Class [ <internal:Core> class Exception implements Throwable, Stringable ] {
|
||||
|
||||
- Constants [0] {
|
||||
}
|
||||
|
@ -122,10 +122,11 @@ string(1969) "Class [ <internal:Core> class Exception implements Throwable ] {
|
|||
}
|
||||
}
|
||||
|
||||
Method [ <internal:Core, prototype Throwable> public method __toString ] {
|
||||
Method [ <internal:Core, prototype Stringable> public method __toString ] {
|
||||
|
||||
- Parameters [0] {
|
||||
}
|
||||
- Return [ string ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ class test3
|
|||
function __toString()
|
||||
{
|
||||
echo __METHOD__ . "()\n";
|
||||
return 42;
|
||||
return [];
|
||||
}
|
||||
}
|
||||
echo "====test1====\n";
|
||||
|
@ -131,5 +131,5 @@ Converted
|
|||
object(test3)#2 (0) {
|
||||
}
|
||||
test3::__toString()
|
||||
Method test3::__toString() must return a string value
|
||||
Return value of test3::__toString() must be of type string, array returned
|
||||
====DONE====
|
||||
|
|
|
@ -29,7 +29,7 @@ try {
|
|||
echo "\n\nObject with bad __toString():\n";
|
||||
class badToString {
|
||||
function __toString() {
|
||||
return 0;
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -62,8 +62,8 @@ Object of class stdClass could not be converted to string
|
|||
|
||||
Object with bad __toString():
|
||||
Try 1:
|
||||
Method badToString::__toString() must return a string value
|
||||
Return value of badToString::__toString() must be of type string, array returned
|
||||
|
||||
|
||||
Try 2:
|
||||
Method badToString::__toString() must return a string value
|
||||
Return value of badToString::__toString() must be of type string, array returned
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue