<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/language.types.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'language.types.object.php',
    1 => 'Objekte',
    2 => 'Objekte',
  ),
  'up' => 
  array (
    0 => 'language.types.php',
    1 => 'Typen',
  ),
  'prev' => 
  array (
    0 => 'language.types.array.php',
    1 => 'Arrays',
  ),
  'next' => 
  array (
    0 => 'language.types.enumerations.php',
    1 => 'Aufz&auml;hlungen (Enum)',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'language/types/object.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="language.types.object" class="sect1">
 <h2 class="title">Objekte</h2>

 <div class="sect2" id="language.types.object.init">
  <h3 class="title">Initialisierung von Objekten</h3>

  <p class="para">
   Ein neues Objekt (Typ <span class="type"><a href="language.types.object.php" class="type object">object</a></span>) kann erstellt werden, indem mit
   der Anweisung <code class="literal">new</code> eine Klasse instanziiert wird:
  </p>

  <div class="example" id="example-1">
   <p><strong>Beispiel #1 Erstellen eines Objekts</strong></p>
   <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">foo<br /></span><span style="color: #007700">{<br />    function </span><span style="color: #0000BB">do_foo</span><span style="color: #007700">()<br />    {<br />        echo </span><span style="color: #DD0000">"Mache foo."</span><span style="color: #007700">;<br />    }<br />}<br /><br /></span><span style="color: #0000BB">$bar </span><span style="color: #007700">= new </span><span style="color: #0000BB">foo</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$bar</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">do_foo</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>

  <p class="simpara">
   Eine ausführliche Erörterung ist im Kapitel
   <a href="language.oop5.php" class="link">Klassen und Objekte</a> zu finden.
  </p>

 </div>

 <div class="sect2" id="language.types.object.casting">
  <h3 class="title">Konvertierung in ein Objekt</h3>

  <p class="para">
   Wenn ein <span class="type">Objekt</span> in ein <span class="type">Objekt</span> konvertiert wird,
   wird es nicht verändert. Wenn ein Wert irgendeines anderen Typs in ein
   <span class="type">Objekt</span> konvertiert wird, dann wird ein neues Exemplar der
   eingebauten Klasse <span class="classname"><a href="class.stdclass.php" class="classname">stdClass</a></span> erstellt. Wenn der Wert
   <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong> war, wird das neue Exemplar leer sein. Ein <span class="type"><a href="language.types.array.php" class="type Array">Array</a></span> wird
   in ein Objekt konvertiert, indem die Schlüssel und Werte des Arrays zu den
   Namen und Werten der Eigenschaften des Objekts werden. Es ist zu beachten,
   dass in diesem Fall vor PHP 7.2.0 nicht auf numerische Schlüssel
   zugegriffen werden konnte, es sei denn, sie wurden iteriert.
  </p>

  <div class="example" id="example-2">
   <p><strong>Beispiel #2 Konvertierung in ein Objekt</strong></p>
   <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$obj </span><span style="color: #007700">= (object) array(</span><span style="color: #DD0000">'1' </span><span style="color: #007700">=&gt; </span><span style="color: #DD0000">'foo'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(isset(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;{</span><span style="color: #DD0000">'1'</span><span style="color: #007700">})); </span><span style="color: #FF8000">// outputs 'bool(true)'<br /><br />// Seit PHP 8.1 veraltet<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">key</span><span style="color: #007700">(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">)); </span><span style="color: #FF8000">// outputs 'string(1) "1"'<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>

  <p class="para">
   Für alle anderen Werte enthält eine Member-Variable namens
   <code class="literal">scalar</code> den Wert.
  </p>

  <div class="example" id="example-3">
   <p><strong>Beispiel #3 Konvertierung mittels <code class="literal">(object)</code></strong></p>
   <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$obj </span><span style="color: #007700">= (object) </span><span style="color: #DD0000">'ciao'</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">scalar</span><span style="color: #007700">;  </span><span style="color: #FF8000">// Ausgabe 'ciao'<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>

 </div>
</div><?php manual_footer($setup); ?>