mirror of
https://github.com/php/php-src.git
synced 2026-03-24 16:22:37 +01:00
Move more low-hanging fruit, creating new directories for the tests for: * comparisons * dynamic calls * error messages * `error_reporting()` * exceptions * `foreach()` * garbage collection * group `use` statements * heredoc and nowdoc * `goto` jumps * late static binding * magic methods * namespaces * numeric literal separators * objects * `settype()` * cleaning of temporary values * `unset()` Additionally, move some tests into the existing subdirectory for `list()` tests. Drive-by fixes of some test numbers in the names of the `goto` tests. Work towards GH-15631
53 lines
727 B
PHP
53 lines
727 B
PHP
--TEST--
|
|
Testing direct assigning for property of object returned by function
|
|
--FILE--
|
|
<?php
|
|
|
|
class foo {
|
|
static $bar = array();
|
|
|
|
public function __set($a, $b) {
|
|
self::$bar[] = $b;
|
|
}
|
|
|
|
public function __get($a) {
|
|
/* last */
|
|
return self::$bar[count(self::$bar)-1];
|
|
}
|
|
}
|
|
|
|
function test() {
|
|
return new foo;
|
|
}
|
|
|
|
$a = test()->bar = 1;
|
|
var_dump($a, count(foo::$bar), test()->whatever);
|
|
|
|
print "\n";
|
|
|
|
$a = test()->bar = NULL;
|
|
var_dump($a, count(foo::$bar), test()->whatever);
|
|
|
|
print "\n";
|
|
|
|
$a = test()->bar = test();
|
|
var_dump($a, count(foo::$bar), test()->whatever);
|
|
|
|
print "\n";
|
|
|
|
?>
|
|
--EXPECTF--
|
|
int(1)
|
|
int(1)
|
|
int(1)
|
|
|
|
NULL
|
|
int(2)
|
|
NULL
|
|
|
|
object(foo)#%d (0) {
|
|
}
|
|
int(3)
|
|
object(foo)#%d (0) {
|
|
}
|