php Статические свойства/поля в трейтах (по факту -- статические переменные)
Primary tabs
На статические переменные можно ссылаться внутри методов трейта, но нельзя определить статические переменные в самом трейте. Тем не менее, трейт может описывать статические методы для демонстрации класса.
Например:
<?php trait Counter { public function inc() { static $c = 0; $c = $c + 1; echo "$c\n"; } } class C1 { use Counter; } class C2 { use Counter; } $o = new C1(); $o->inc(); // echo 1 $p = new C2(); $p->inc(); // echo 1 ?>
-- в этом примере использована статическая переменная внутри метода, инициализация которой происходит только один раз.
Подробнее о статических членах трейтов: https://secure.php.net/manual/ru/languag...
- Log in to post comments
- 2110 reads