Ошибка при вызове родительского метода

Рейтинг: 0Ответов: 0Опубликовано: 02.06.2023

Хочу из дочернего класса Square вызвать родительский метод getSideLength при помощи private float $sideLength = parent::getSideLength($coord1, $coord2);;, но интерпретатор выдает ошибку:

PHP Fatal error:  Constant expression contains invalid operations in main.php on line 18

При этом, когда создаю переменную $sideLength через конструктор, то ошибки не происходит. Не хочу создавать переменную чере конструктор. Как мне это сделать? Поддерживает ли php ленивые вычисления?
Мой код:

<?php

abstract class Figure 
{
    protected function getSideLength(array $coord1, array $coord2) {
        [$x1, $y1] = $coord1;
        [$x2, $y2] = $coord2;
        return sqrt(pow(($x2 - $x1),2) + pow(($y2 - $y1),2));
    }
}

final class Square extends Figure 
{
    private array $coord1;
    private array $coord2;
    private array $coord3;
    private array $coord4;
    private float $sideLength = parent::getSideLength($coord1, $coord2);;

    function __construct(array $coord1, array $coord2, 
                         array $coord3, array $coord4) {
        $this->coord1 = $coord1;
        $this->coord2 = $coord2;
        $this->coord3 = $coord3;
        $this->coord4 = $coord4;        
    }
}

Ответы

Ответов пока нет.