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/language.oop5.traits.php#language.oop5.traits.static
- Log in to post comments
- 2643 reads