Nie napisałeś, z czym masz właściwie problem. Kod wygląda ok (pomijając to, że nie trzyma się żadnych standardów), jedyne co przekręciłeś to to, że wartości $h i $a miały być wygenerowane losowo:
public function __construct()
{
$this->h = random_int(1, 100); // losowy int od 1 do 100
$this->a = random_int(1, 100);
}
A tak wyglądałby poprawnie sformatowany kod:
// PHP 7.4
class Triangle
{
// pełne nazwy zmiennych, żadne pojedyncze litery, bo to największe zło
public int $height;
public int $base;
public function __construct()
{
$this->height = random_int(1, 100);
$this->base = random_int(1, 100);
}
// typ zwracany float oraz nazwa metody w języku angielskim, pisana camelCasem
public function calculateArea(): float
{
return 1/2 * $this->base * $this->height;
}
}