<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=Objektskloning</id>
	<title>Objektskloning - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linux.se/index.php?action=history&amp;feed=atom&amp;title=Objektskloning"/>
	<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=Objektskloning&amp;action=history"/>
	<updated>2026-04-10T21:38:25Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://wiki.linux.se/index.php?title=Objektskloning&amp;diff=3234&amp;oldid=prev</id>
		<title>Admin: /* Exempel #2 Komma åt medlem av ett nyklonat objekt */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=Objektskloning&amp;diff=3234&amp;oldid=prev"/>
		<updated>2024-08-19T05:37:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Exempel #2 Komma åt medlem av ett nyklonat objekt&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sv&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 19 augusti 2024 kl. 05.37&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l111&quot;&gt;Rad 111:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rad 111:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2016&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= Sidslut =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Orginalhemsidan på Engelska : https://www.php.net/manual/en/language.oop5.cloning.php&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;BR&gt;[[PHP]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;BR&gt;[[Språkreferens]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;BR&gt;[[Språkreferens#Klasser_och_Objekt]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Kategori:Php]]&amp;lt;br&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;BR&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;hr&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;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å &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https://www.linux.se/kontaka-linux-se/&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.linux.se/index.php?title=Objektskloning&amp;diff=3233&amp;oldid=prev</id>
		<title>Admin: Skapade sidan med &#039;== Kloning av objekt ==  Att skapa en kopia av ett objekt med fullständigt replikerade egenskaper är inte alltid önskvärt. Ett bra exempel på behovet av kopieringskonstruktorer är om du har ett objekt som representerar ett GTK-fönster och objektet håller resursen för detta GTK-fönster. När du skapar en dubblett kanske du vill skapa ett nytt fönster med samma egenskaper och låta det nya objektet hålla resursen för det nya fönstret. Ett annat exempel är om...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.linux.se/index.php?title=Objektskloning&amp;diff=3233&amp;oldid=prev"/>
		<updated>2024-08-19T05:37:22Z</updated>

		<summary type="html">&lt;p&gt;Skapade sidan med &amp;#039;== Kloning av objekt ==  Att skapa en kopia av ett objekt med fullständigt replikerade egenskaper är inte alltid önskvärt. Ett bra exempel på behovet av kopieringskonstruktorer är om du har ett objekt som representerar ett GTK-fönster och objektet håller resursen för detta GTK-fönster. När du skapar en dubblett kanske du vill skapa ett nytt fönster med samma egenskaper och låta det nya objektet hålla resursen för det nya fönstret. Ett annat exempel är om...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Kloning av objekt ==&lt;br /&gt;
&lt;br /&gt;
Att skapa en kopia av ett objekt med fullständigt replikerade egenskaper är inte alltid önskvärt. Ett bra exempel på behovet av kopieringskonstruktorer är om du har ett objekt som representerar ett GTK-fönster och objektet håller resursen för detta GTK-fönster. När du skapar en dubblett kanske du vill skapa ett nytt fönster med samma egenskaper och låta det nya objektet hålla resursen för det nya fönstret. Ett annat exempel är om ditt objekt håller en referens till ett annat objekt som det använder, och när du replikerar huvudobjektet vill du skapa en ny instans av detta andra objekt så att replikan har sin egen separata kopia.&lt;br /&gt;
&lt;br /&gt;
En kopia av ett objekt skapas genom att använda nyckelordet `clone` (som anropar objektets `__clone()`-metod om möjligt).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$kopia_av_objekt = clone $objekt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
När ett objekt klonas kommer PHP att utföra en grundläggande kopia av alla objektets egenskaper. Alla egenskaper som är referenser till andra variabler kommer att förbli referenser.&lt;br /&gt;
&lt;br /&gt;
=== __clone(): void ===&lt;br /&gt;
&lt;br /&gt;
När kloningen är klar, om en `__clone()`-metod är definierad, kommer den nyskapade objektets `__clone()`-metod att anropas för att möjliggöra eventuella nödvändiga ändringar av egenskaper.&lt;br /&gt;
&lt;br /&gt;
=== Exempel #1 Kloning av ett objekt ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
class SubObject&lt;br /&gt;
{&lt;br /&gt;
    static $instances = 0;&lt;br /&gt;
    public $instance;&lt;br /&gt;
&lt;br /&gt;
    public function __construct() {&lt;br /&gt;
        $this-&amp;gt;instance = ++self::$instances;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function __clone() {&lt;br /&gt;
        $this-&amp;gt;instance = ++self::$instances;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MyCloneable&lt;br /&gt;
{&lt;br /&gt;
    public $object1;&lt;br /&gt;
    public $object2;&lt;br /&gt;
&lt;br /&gt;
    function __clone()&lt;br /&gt;
    {&lt;br /&gt;
        // Tvinga en kopia av this-&amp;gt;object, annars&lt;br /&gt;
        // kommer det att peka på samma objekt.&lt;br /&gt;
        $this-&amp;gt;object1 = clone $this-&amp;gt;object1;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$obj = new MyCloneable();&lt;br /&gt;
&lt;br /&gt;
$obj-&amp;gt;object1 = new SubObject();&lt;br /&gt;
$obj-&amp;gt;object2 = new SubObject();&lt;br /&gt;
&lt;br /&gt;
$obj2 = clone $obj;&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Originalobjekt:\n&amp;quot;;&lt;br /&gt;
print_r($obj);&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;Klonat objekt:\n&amp;quot;;&lt;br /&gt;
print_r($obj2);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemplet ovan kommer att ge följande resultat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Originalobjekt:&lt;br /&gt;
MyCloneable Object&lt;br /&gt;
(&lt;br /&gt;
    [object1] =&amp;gt; SubObject Object&lt;br /&gt;
        (&lt;br /&gt;
            [instance] =&amp;gt; 1&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
    [object2] =&amp;gt; SubObject Object&lt;br /&gt;
        (&lt;br /&gt;
            [instance] =&amp;gt; 2&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
Klonat objekt:&lt;br /&gt;
MyCloneable Object&lt;br /&gt;
(&lt;br /&gt;
    [object1] =&amp;gt; SubObject Object&lt;br /&gt;
        (&lt;br /&gt;
            [instance] =&amp;gt; 3&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
    [object2] =&amp;gt; SubObject Object&lt;br /&gt;
        (&lt;br /&gt;
            [instance] =&amp;gt; 2&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Det är möjligt att komma åt en medlem av ett nyklonat objekt i ett enda uttryck:&lt;br /&gt;
&lt;br /&gt;
=== Exempel #2 Komma åt medlem av ett nyklonat objekt ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$dateTime = new DateTime();&lt;br /&gt;
echo (clone $dateTime)-&amp;gt;format(&amp;#039;Y&amp;#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemplet ovan kommer att ge något liknande:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
2016&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>