Проблема со статической переменной из класса, расширяющего абстрактный

Почему этот код выводит третью третью третью?

<?php

abstract class xyz {

    static $var;

    public static function setVar($value) {
        static::$var = $value;
    }
}

class one extends xyz {}

class two extends xyz {}
class three extends xyz {}

call_user_func('one::setVar', 'first');
call_user_func('two::setVar', 'second');
call_user_func('three::setVar', 'third');

echo "<pre>";
echo one::$var."\n";
echo two::$var."\n";
echo three::$var."\n";
echo "</pre>";

Я бы подумал первое, второе третье

Что мне здесь не хватает?

Обновлять

Это было мое решение

public static function setVar($value) {
        $class = get_called_class();
        $class::$var =& $value;
    }

person Community    schedule 24.06.2019    source источник
comment
См. stackoverflow.com/questions/4577187/   -  person Clive    schedule 24.06.2019
comment
Спасибо @Clive, я не знал, что ищу.   -  person    schedule 24.06.2019
comment
3v4l.org/GKmUr   -  person Anant Kumar Singh    schedule 24.06.2019