note 115814 deleted from language.oop5.traits by pollita
| From: | pollita@php.net | Date: | Mon, 23 Nov 2020 17:09:13 +0000 |
| Subject: | note 115814 deleted from language.oop5.traits by pollita | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-215889@lists.php.net to get a copy of this message | ||
Note Submitter: ryan dot yoosefi at gmail dot com
----
Visibility in traits is not shared between trait users.
<?php
trait T {
protected $secret = 1;
}
class X {
use T;
public function peek ( Y $y ) {
echo $y->secret;
}
}
class Y {
use T;
}
(new X)->peek(new Y); // Fatal: Cannot access protected property Y::$secret
?>
This is as expected when thinking of traits as language assisted copy-paste.