From: Ilija Tovilo Date: Sat, 15 Aug 2020 15:43:34 +0000 (+0200) Subject: Add tests for nullsafe operator on delayed oplines X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=70300f6c9dcabb16740dafd017db4798c2a579e8;p=php Add tests for nullsafe operator on delayed oplines --- diff --git a/Zend/tests/nullsafe_operator/034.phpt b/Zend/tests/nullsafe_operator/034.phpt new file mode 100644 index 0000000000..a82cec6b22 --- /dev/null +++ b/Zend/tests/nullsafe_operator/034.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test nullsafe operator on delayed dim +--FILE-- + null, + 'bar' => [ + 'baz' => null, + ], +]; + +var_dump($arr['foo']?->something); +var_dump($arr['invalid']?->something); + +var_dump($arr['bar']['baz']?->something); +var_dump($arr['bar']['invalid']?->something); + +?> +--EXPECTF-- +NULL + +Warning: Undefined array key "invalid" in %s.php on line 11 +NULL +NULL + +Warning: Undefined array key "invalid" in %s.php on line 14 +NULL diff --git a/Zend/tests/nullsafe_operator/035.phpt b/Zend/tests/nullsafe_operator/035.phpt new file mode 100644 index 0000000000..684c8c5d5f --- /dev/null +++ b/Zend/tests/nullsafe_operator/035.phpt @@ -0,0 +1,27 @@ +--TEST-- +Test nullsafe operator on delayed var +--FILE-- +bar = null; +var_dump($foo->bar?->baz); + +$bar = new Bar(); +$bar->baz = 'baz'; +$foo->bar = $bar; +var_dump($foo->bar?->baz); + +?> +--EXPECT-- +NULL +string(3) "baz" diff --git a/Zend/tests/nullsafe_operator/036.phpt b/Zend/tests/nullsafe_operator/036.phpt new file mode 100644 index 0000000000..1874f733aa --- /dev/null +++ b/Zend/tests/nullsafe_operator/036.phpt @@ -0,0 +1,28 @@ +--TEST-- +Test nullsafe method call on delayed var +--FILE-- +bar = null; +var_dump($foo->bar?->baz()); + +$bar = new Bar(); +$foo->bar = $bar; +var_dump($foo->bar?->baz()); + +?> +--EXPECT-- +NULL +string(3) "baz" diff --git a/Zend/tests/nullsafe_operator/037.phpt b/Zend/tests/nullsafe_operator/037.phpt new file mode 100644 index 0000000000..5ce49ae029 --- /dev/null +++ b/Zend/tests/nullsafe_operator/037.phpt @@ -0,0 +1,15 @@ +--TEST-- +Test nullsafe operator in nested delayed dims +--FILE-- +bar = 'bar'; + +$array = ['foo' => ['bar' => 'baz']]; + +var_dump($array['foo'][$foo?->bar]); + +?> +--EXPECT-- +string(3) "baz" diff --git a/Zend/tests/nullsafe_operator/038.phpt b/Zend/tests/nullsafe_operator/038.phpt new file mode 100644 index 0000000000..422de0b891 --- /dev/null +++ b/Zend/tests/nullsafe_operator/038.phpt @@ -0,0 +1,12 @@ +--TEST-- +Test nullsafe operator in nested delayed dims 2 +--FILE-- + 0]; +$array = [[null]]; +var_dump($array[0][$foo->bar]?->baz); + +?> +--EXPECT-- +NULL