mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Revert 746b1cf4 "Access long value directly for call to count() in simplexml"
The count() function has a tentative return type. Add a comment for the future.
This commit is contained in:
@@ -1928,8 +1928,9 @@ static zend_result sxe_count_elements(zend_object *object, zend_long *count) /*
|
||||
zval rv;
|
||||
zend_call_method_with_0_params(object, intern->zo.ce, &intern->fptr_count, "count", &rv);
|
||||
if (!Z_ISUNDEF(rv)) {
|
||||
ZEND_ASSERT(Z_TYPE(rv) == IS_LONG);
|
||||
*count = Z_LVAL(rv);
|
||||
/* TODO: change this to Z_LVAL_P() once the tentative type on count() is gone. */
|
||||
*count = zval_get_long(&rv);
|
||||
zval_ptr_dtor(&rv);
|
||||
return SUCCESS;
|
||||
}
|
||||
return FAILURE;
|
||||
|
||||
20
ext/simplexml/tests/count_return_type_will_change.phpt
Normal file
20
ext/simplexml/tests/count_return_type_will_change.phpt
Normal file
@@ -0,0 +1,20 @@
|
||||
--TEST--
|
||||
SimpleXMLElement::count() interaction with ReturnTypeWillChange
|
||||
--EXTENSIONS--
|
||||
simplexml
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class CustomClass extends SimpleXMLElement {
|
||||
#[\ReturnTypeWillChange]
|
||||
public function count(): string {
|
||||
return "3";
|
||||
}
|
||||
}
|
||||
|
||||
$sxe = simplexml_load_string("<root/>", CustomClass::class);
|
||||
var_dump(count($sxe));
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
int(3)
|
||||
Reference in New Issue
Block a user