Nyelvi playground

Modern PHP 8.4 nyelvi elemek élőben: property hooks, aszimmetrikus láthatóság és új array-függvények - mindegyik fül alatt a valódi, szerveren futó PHP-kód és egy ténylegesen lefuttatott eredmény, a te bemeneteddel.

A "celsius" property `set` hookja MINDEN hozzárendeléskor lefut, és csendben az abszolút nullára (-273,15 °C) szorít, sosem dob hibát. A "fahrenheit" propertynek nincs saját tárolt mezője: az értéke mindig a celsius-ból SZÁMOLT - állítsd be bármelyiket, a másik automatikusan követi.

A ténylegesen lefutó PHP-kód
final class Temperature
{
    public const float ABSOLUTE_ZERO_CELSIUS = -273.15;

    public float $celsius {
        set {
            // Csendben szorít, sosem dob kivételt
            $this->celsius = max(self::ABSOLUTE_ZERO_CELSIUS, $value);
        }
    }

    // Nincs saját tárolt mezője - mindig a celsius-ból számolt érték
    public float $fahrenheit {
        get => $this->celsius * 9 / 5 + 32;
        set {
            $this->celsius = ($value - 32) * 5 / 9;
        }
    }
}
Mértékegység