1
0
mirror of https://github.com/php/php-src.git synced 2026-04-26 17:38:14 +02:00
Files
archived-php-src/Zend/tests/dereference_014.phpt
T
Nikita Popov c42b7dd6d3 Throw notice on array access on illegal type
No notice is thrown for list() accesses, because we did not come
to an agreement regarding patterns like

    while ([$key, $value] = yield $it->next()) { ... }

where silent null access may be desirable.

No effort is made to suppress multiple notices in access chains
likes $x[0][0][0], because the technical complexity this causes
does not seem worthwhile.

RFC: https://wiki.php.net/rfc/notice-for-non-valid-array-container
2019-07-10 12:02:14 +02:00

39 lines
667 B
PHP

--TEST--
Trying to create an object from dereferencing uninitialized variable
--FILE--
<?php
error_reporting(E_ALL);
class foo {
public $x;
static public $y;
public function a() {
return $this->x;
}
static public function b() {
return self::$y;
}
}
$foo = new foo;
$h = $foo->a()[0]->a;
var_dump($h);
$h = foo::b()[1]->b;
var_dump($h);
?>
--EXPECTF--
Notice: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to get property 'a' of non-object in %s on line %d
NULL
Notice: Trying to access array offset on value of type null in %s on line %d
Notice: Trying to get property 'b' of non-object in %s on line %d
NULL