TypePHP 编译器 https://swoole.com/aot/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

89 lines
2.2 KiB

--TEST--
GH-16905 (Internal iterator functions can't handle UNDEF properties)
--SKIPIF--
<?php die("skip AOT iteration order/internal pointer handling differs from PHP"); ?>
--FILE--
<?php
class TestSomeUndef
{
public int $a;
public int $b;
public int $c;
public int $d;
}
class TestAllUndef
{
public int $a;
}
function main()
{
$x = new TestSomeUndef();
$x->b = 1;
$x->c = 2;
var_dump(reset($x));
var_dump(current($x));
var_dump(end($x));
var_dump(reset($x));
var_dump(next($x));
var_dump(end($x));
var_dump(prev($x));
var_dump(key($x));
var_dump(current($x));
$x2 = new TestAllUndef();
var_dump(key($x2));
var_dump(current($x2));
$x2->a = 1;
var_dump(key($x2));
var_dump(current($x2));
reset($x2);
var_dump(key($x2));
var_dump(current($x2));
}
?>
--EXPECTF--
Deprecated: reset(): Calling reset() on an object is deprecated in %s on line %d
int(1)
Deprecated: current(): Calling current() on an object is deprecated in %s on line %d
int(1)
Deprecated: end(): Calling end() on an object is deprecated in %s on line %d
int(2)
Deprecated: reset(): Calling reset() on an object is deprecated in %s on line %d
int(1)
Deprecated: next(): Calling next() on an object is deprecated in %s on line %d
int(2)
Deprecated: end(): Calling end() on an object is deprecated in %s on line %d
int(2)
Deprecated: prev(): Calling prev() on an object is deprecated in %s on line %d
int(1)
Deprecated: key(): Calling key() on an object is deprecated in %s on line %d
string(1) "b"
Deprecated: current(): Calling current() on an object is deprecated in %s on line %d
int(1)
Deprecated: key(): Calling key() on an object is deprecated in %s on line %d
NULL
Deprecated: current(): Calling current() on an object is deprecated in %s on line %d
bool(false)
Deprecated: key(): Calling key() on an object is deprecated in %s on line %d
NULL
Deprecated: current(): Calling current() on an object is deprecated in %s on line %d
bool(false)
Deprecated: reset(): Calling reset() on an object is deprecated in %s on line %d
Deprecated: key(): Calling key() on an object is deprecated in %s on line %d
string(1) "a"
Deprecated: current(): Calling current() on an object is deprecated in %s on line %d
int(1)