OOP Ändringslogg: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '== OOP Ändringslogg == Ändringar i PHP:s OOP-modell loggas här. Beskrivningar och andra anteckningar om dessa funktioner dokumenteras inom OOP-modellens dokumentation. {| class="wikitable" ! 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...')
 
 
Rad 64: Rad 64:
| 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: 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: 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 || Ä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.
Rad 76: Rad 76:
| 5.3.0 || Tillagt: Metoden [[__invoke]].
| 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.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.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.
Rad 84: Rad 85:
| 5.1.0 || Tillagt: Metoderna [[__isset]] och [[__unset]].
| 5.1.0 || Tillagt: Metoderna [[__isset]] och [[__unset]].
|}
|}


= Sidslut =
= Sidslut =

Nuvarande version från 19 augusti 2024 kl. 05.54

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/