summaryrefslogtreecommitdiff
path: root/Zend/tests/type_declarations/typed_properties_055.phpt
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-01-07 12:28:51 +0100
committerNikita Popov <nikita.ppv@gmail.com>2019-01-11 15:49:06 +0100
commite219ec144ef6682b71e135fd18654ee1bb4676b4 (patch)
treee4a3ae2b619cdc9fe50ee8e1fa5adb99d804dddf /Zend/tests/type_declarations/typed_properties_055.phpt
parentfe8fdfa3bd588d80ce60f6b3848058239e0a760f (diff)
downloadphp-git-e219ec144ef6682b71e135fd18654ee1bb4676b4.tar.gz
Implement typed properties
RFC: https://wiki.php.net/rfc/typed_properties_v2 This is a squash of PR #3734, which is a squash of PR #3313. Co-authored-by: Bob Weinand <bobwei9@hotmail.com> Co-authored-by: Joe Watkins <krakjoe@php.net> Co-authored-by: Dmitry Stogov <dmitry@zend.com>
Diffstat (limited to 'Zend/tests/type_declarations/typed_properties_055.phpt')
-rw-r--r--Zend/tests/type_declarations/typed_properties_055.phpt29
1 files changed, 29 insertions, 0 deletions
diff --git a/Zend/tests/type_declarations/typed_properties_055.phpt b/Zend/tests/type_declarations/typed_properties_055.phpt
new file mode 100644
index 0000000000..31d687254c
--- /dev/null
+++ b/Zend/tests/type_declarations/typed_properties_055.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Test assign to typed property taken by reference
+--FILE--
+<?php
+class A {
+ public $foo = 1;
+ public int $bar = 2;
+}
+class B {
+ public A $a;
+}
+$f = function (&$n) {
+ var_dump($n);
+ $n = "ops";
+};
+$o = new B;
+$o->a = new A;
+$f($o->a->foo);
+$f($o->a->bar);
+?>
+--EXPECTF--
+int(1)
+int(2)
+
+Fatal error: Uncaught TypeError: Cannot assign string to reference held by property A::$bar of type int in %s:%d
+Stack trace:
+#0 %s(%d): {closure}(2)
+#1 {main}
+ thrown in %s on line %d