OOP Ändringslogg
OOP Ändringslogg
Ändringar i PHP:s OOP-modell loggas här. Beskrivningar och andra anteckningar om dessa funktioner dokumenteras inom OOP-modellens dokumentation.
Version | Beskrivning |
---|---|
8.1.0 | Tillagt: Stöd för final-modifieraren för klasskonstanter. Dessutom blir interface-konstanter överskrivbara som standard. |
8.0.0 | Tillagt: Stöd för nullsafe-operatorn ?-> för att komma åt egenskaper och metoder på objekt som kan vara null. |
7.4.0 | Ändrat: Det är nu möjligt att kasta undantag inom __toString(). |
7.4.0 | Tillagt: Stöd för begränsad returtyp-kovarians och argumenttyp-kontravarians. Fullt stöd för varians är endast tillgängligt om autoloading används. Inom en enda fil är endast icke-cykliska typreferenser möjliga. |
7.4.0 | Tillagt: Det är nu möjligt att ange typer för klassegenskaper. |
7.3.0 | Oförenlighet: Argumentuppackning av Traversables med icke-int nycklar stöds inte längre. Detta beteende var inte avsett och har därför tagits bort. |
7.3.0 | Oförenlighet: I tidigare versioner var det möjligt att separera de statiska egenskaperna genom att tilldela en referens. Detta har tagits bort. |
7.3.0 | Ändrat: instanceof-operatorn tillåter nu literaler som första operand, i vilket fall resultatet alltid är false. |
7.2.0 | Föråldrat: Metoden __autoload() har föråldrats till förmån för spl_autoload_register(). |
7.2.0 | Ändrat: Följande namn kan inte användas för att namnge klasser, interface eller traits: object. |
7.2.0 | Ändrat: Ett avslutande komma kan nu läggas till i gruppanvändningssyntaxen för namnrymder. |
7.2.0 | Ändrat: Parameterbredning. Parametertyper från överskrivna metoder och från interface-implementationer kan nu utelämnas. |
7.2.0 | Ändrat: Abstrakta metoder kan nu överskrivas när en abstrakt klass ärver en annan abstrakt klass. |
7.1.0 | Ändrat: Följande namn kan inte användas för att namnge klasser, interface eller traits: void och iterable. |
7.1.0 | Tillagt: Det är nu möjligt att specificera synligheten för klasskonstanter. |
7.0.0 | Föråldrat: Statisk anrop till metoder som inte är deklarerade statiska. |
7.0.0 | Föråldrat: PHP 4-stilens konstruktorer, dvs metoder som har samma namn som den klass de är definierade i. |
7.0.0 | Tillagt: Gruppanvändningsdeklaration: klasser, funktioner och konstanter som importeras från samma namnrymd kan nu grupperas i en enda use-sats. |
7.0.0 | Tillagt: Stöd för anonyma klasser har lagts till via new class. |
7.0.0 | Oförenlighet: Iterering över ett icke-Traversable-objekt kommer nu att ha samma beteende som att iterera över referens-arrayer. |
7.0.0 | Ändrat: Definiering av (kompatibla) egenskaper i två använda traits utlöser inte längre ett fel. |
5.6.0 | Tillagt: Metoden __debugInfo(). |
5.5.0 | Tillagt: Den magiska konstanten __class. |
5.5.0 | Tillagt: finally för att hantera undantag. |
5.4.0 | Tillagt: traits. |
5.4.0 | Ändrat: Om en abstrakt klass definierar en signatur för konstruktorn kommer denna nu att upprätthållas. |
5.3.3 | Ändrat: Metoder med samma namn som det sista elementet i ett namnrymdeklassnamn kommer inte längre att behandlas som konstruktor. Denna ändring påverkar inte icke-namnrymdklasser. |
5.3.0 | Ändrat: Klasser som implementerar interface med metoder som har standardvärden i prototypen behöver inte längre matcha interface's standardvärde. |
5.3.0 | Ändrat: Det är nu möjligt att referera till klassen med en variabel (t.ex. echo $classname::constant;). Variabelns värde kan inte vara ett nyckelord (t.ex. self, parent eller static). |
5.3.0 | Ändrat: Ett E_WARNING fel utlöses om de magiska överbelastningsmetoderna deklareras statiska. Det upprätthåller också kravet på offentlig synlighet. |
5.3.0 | Ändrat: Före version 5.3.0, kunde undantag som kastades i __autoload()-funktionen inte fångas i en catch-block, och skulle resultera i ett fatalt fel. Undantag som nu kastas i __autoload-funktionen kan fångas i en catch-block, med en förutsättning. Om ett anpassat undantag kastas, måste den anpassade undantagsklassen vara tillgänglig. __autoload-funktionen kan användas rekursivt för att autoladda den anpassade undantagsklassen. |
5.3.0 | Tillagt: Metoden __callStatic. |
5.3.0 | Tillagt: Stöd för heredoc och nowdoc för klasskonstanter och egenskapsdefinitioner. Obs: heredoc-värden måste följa samma regler som dubbelciterade strängar (t.ex. inga variabler inom dem). |
5.3.0 | Tillagt: Sen statisk bindning. |
5.3.0 | Tillagt: Metoden __invoke. |
5.2.0 | Ändrat: Metoden __toString() kallades endast när den direkt kombinerades med echo eller print. Men nu kallas den i alla strängkontexter (t.ex. i printf() med %s-modifieraren) men inte i andra typer av kontexter (t.ex. med %d-modifieraren). Från och med PHP 5.2.0, utlöser konvertering av objekt utan
__toString metod till sträng ett E_RECOVERABLE_ERROR-fel. |
5.1.3 | Ändrat: I tidigare versioner av PHP 5 betraktades användningen av var som föråldrad och utlöste ett E_STRICT-fel. Detta är inte längre föråldrat och utlöser därför inte längre felet. |
5.1.0 | Ändrat: Den statiska metoden __set_state anropas nu för klasser som exporteras av var_export(). |
5.1.0 | Tillagt: Metoderna __isset och __unset. |
Sidslut
Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.changelog.php
PHP
Språkreferens
Språkreferens#Klasser_och_Objekt
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/