summaryrefslogtreecommitdiff
path: root/Zend/tests/nullsafe_operator
diff options
context:
space:
mode:
authorIlija Tovilo <ilija.tovilo@me.com>2020-08-09 19:24:44 +0200
committerIlija Tovilo <ilija.tovilo@me.com>2020-08-11 21:16:44 +0200
commit10f660f0a51812ac62e8f03895944e895e553240 (patch)
tree6035146fff3b21d14398c1f3ec36045fb1716ee8 /Zend/tests/nullsafe_operator
parent898bb97706326311a367aaef35b3f95510100f3c (diff)
downloadphp-git-10f660f0a51812ac62e8f03895944e895e553240.tar.gz
Fix ?-> in encaps vars without braces
Closes GH-5966.
Diffstat (limited to 'Zend/tests/nullsafe_operator')
-rw-r--r--Zend/tests/nullsafe_operator/003.phpt29
-rw-r--r--Zend/tests/nullsafe_operator/033.phpt61
2 files changed, 71 insertions, 19 deletions
diff --git a/Zend/tests/nullsafe_operator/003.phpt b/Zend/tests/nullsafe_operator/003.phpt
index b19c619eeb..83c2863d1a 100644
--- a/Zend/tests/nullsafe_operator/003.phpt
+++ b/Zend/tests/nullsafe_operator/003.phpt
@@ -19,25 +19,20 @@ var_dump(null?->baz);
var_dump(null?->qux());
var_dump(null?->quux());
-var_dump((new Foo)?->bar);
-var_dump((new Foo)?->baz);
-var_dump((new Foo)?->qux());
+var_dump($foo?->bar);
+var_dump($foo?->baz);
+var_dump($foo?->qux());
try {
- var_dump((new Foo)?->quux());
+ var_dump($foo?->quux());
} catch (Throwable $e) {
var_dump($e->getMessage());
}
-var_dump("{$null?->foo}");
-var_dump("{$null?->bar}");
-var_dump("{$null?->qux()}");
-var_dump("{$null?->quux()}");
-
-var_dump("{$foo?->bar}");
-var_dump("{$foo?->baz}");
-var_dump("{$foo?->qux()}");
+var_dump((new Foo)?->bar);
+var_dump((new Foo)?->baz);
+var_dump((new Foo)?->qux());
try {
- var_dump("{$foo?->quux()}");
+ var_dump((new Foo)?->quux());
} catch (Throwable $e) {
var_dump($e->getMessage());
}
@@ -54,13 +49,9 @@ Warning: Undefined property: Foo::$baz in %s.php on line 20
NULL
string(3) "qux"
string(36) "Call to undefined method Foo::quux()"
-string(0) ""
-string(0) ""
-string(0) ""
-string(0) ""
string(3) "bar"
-Warning: Undefined property: Foo::$baz in %s.php on line 34
-string(0) ""
+Warning: Undefined property: Foo::$baz in %s.php on line 29
+NULL
string(3) "qux"
string(36) "Call to undefined method Foo::quux()"
diff --git a/Zend/tests/nullsafe_operator/033.phpt b/Zend/tests/nullsafe_operator/033.phpt
new file mode 100644
index 0000000000..63ee2f850a
--- /dev/null
+++ b/Zend/tests/nullsafe_operator/033.phpt
@@ -0,0 +1,61 @@
+--TEST--
+Test nullsafe operator in encaps vars
+--FILE--
+<?php
+
+class Foo {
+ public $bar = 'bar';
+
+ function qux() {
+ return 'qux';
+ }
+}
+
+$null = null;
+$foo = new Foo();
+
+var_dump("{$null?->foo}");
+var_dump("{$null?->bar()}");
+var_dump("$null?->foo");
+var_dump("$null?->bar()");
+
+var_dump("{$foo?->bar}");
+var_dump("{$foo?->baz}");
+var_dump("{$foo?->qux()}");
+try {
+ var_dump("{$foo?->quux()}");
+} catch (Throwable $e) {
+ var_dump($e->getMessage());
+}
+
+var_dump("$foo?->bar");
+var_dump("$foo?->baz");
+var_dump("$foo?->qux()");
+try {
+ var_dump("$foo?->quux()");
+} catch (Throwable $e) {
+ var_dump($e->getMessage());
+}
+
+?>
+--EXPECTF--
+string(0) ""
+string(0) ""
+string(0) ""
+string(2) "()"
+string(3) "bar"
+
+Warning: Undefined property: Foo::$baz in %s.php on line 20
+string(0) ""
+string(3) "qux"
+string(36) "Call to undefined method Foo::quux()"
+string(3) "bar"
+
+Warning: Undefined property: Foo::$baz in %s.php on line 29
+string(0) ""
+
+Warning: Undefined property: Foo::$qux in %s.php on line 30
+string(2) "()"
+
+Warning: Undefined property: Foo::$quux in %s.php on line 32
+string(2) "()"