mirror of
https://github.com/php/php-src.git
synced 2026-04-24 08:28:26 +02:00
ext/spl: Deprecate ArrayObject and ArrayIterator with objects (#19420)
RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_arrayobject_and_arrayiterator_with_objects This also moves tests into a subfolder.
This commit is contained in:
committed by
GitHub
parent
9c754baa99
commit
fb87b14b6c
@@ -0,0 +1,49 @@
|
||||
--TEST--
|
||||
SPL: ArrayObject with bad iterator class.
|
||||
--FILE--
|
||||
<?php
|
||||
try {
|
||||
$ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3));
|
||||
$ao->setIteratorClass("nonExistentClass");
|
||||
foreach($ao as $key=>$value) {
|
||||
echo " $key=>$value\n";
|
||||
}
|
||||
} catch (TypeError $e) {
|
||||
var_dump($e->getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
$ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3));
|
||||
$ao->setIteratorClass("stdClass");
|
||||
foreach($ao as $key=>$value) {
|
||||
echo " $key=>$value\n";
|
||||
}
|
||||
} catch (TypeError $e) {
|
||||
var_dump($e->getMessage());
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
$ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3), 0, "nonExistentClass");
|
||||
foreach($ao as $key=>$value) {
|
||||
echo " $key=>$value\n";
|
||||
}
|
||||
} catch (TypeError $e) {
|
||||
var_dump($e->getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
$ao = new ArrayObject(array('a'=>1,'b'=>2,'c'=>3), 0, "stdClass");
|
||||
foreach($ao as $key=>$value) {
|
||||
echo " $key=>$value\n";
|
||||
}
|
||||
} catch (TypeError $e) {
|
||||
var_dump($e->getMessage());
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
string(133) "ArrayObject::setIteratorClass(): Argument #1 ($iteratorClass) must be a class name derived from ArrayIterator, nonExistentClass given"
|
||||
string(125) "ArrayObject::setIteratorClass(): Argument #1 ($iteratorClass) must be a class name derived from ArrayIterator, stdClass given"
|
||||
string(128) "ArrayObject::__construct(): Argument #3 ($iteratorClass) must be a class name derived from ArrayIterator, nonExistentClass given"
|
||||
string(120) "ArrayObject::__construct(): Argument #3 ($iteratorClass) must be a class name derived from ArrayIterator, stdClass given"
|
||||
Reference in New Issue
Block a user