diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-01-07 12:28:51 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-01-11 15:49:06 +0100 |
commit | e219ec144ef6682b71e135fd18654ee1bb4676b4 (patch) | |
tree | e4a3ae2b619cdc9fe50ee8e1fa5adb99d804dddf /Zend/tests/type_declarations/typed_properties_055.phpt | |
parent | fe8fdfa3bd588d80ce60f6b3848058239e0a760f (diff) | |
download | php-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.phpt | 29 |
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 |