Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
<?php
class User
{
public static int $count = 0;
public function __construct() { self::$count++; }
}
new User();
new User();
echo User::$count, "\n";2
- Ждать
1, будто у каждого объекта свой счётчик:static-свойство принадлежит классу, и оба конструктора прибавляют к одному$count. - Считать, что
new User();без переменной ничего не делает:newвсегда строит объект и запускает конструктор, объект только не сохраняется.
- Что сделает
echo User::$count, если$countбудет обычным свойством, а неstatic? - Почему
static-свойство может сделать два теста зависимыми друг от друга?