06/01_klonovanie1.php


  1  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
  2  <html>
  3  <head>
  4    <meta http-equiv="Author" content="Imrich BURANSKY" />
  5    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1250" />
  6    <title>Klonovanie 1</title>
  7  </head>
  8  <body>
  9  <div>
 10  <h2>Klonovanie 1</h2>
 11  <?php
 12  
 13  class CA
 14  {
 15    public $x;
 16    public function __construct($hodnota)
 17    {
 18      $this->x=$hodnota;
 19    }
 20  }
 21  
 22  echo "<h3>Priradenie</h3>
 23  ";
 24  $A1 = new CA(111);
 25  $A2 = $A1;
 26  $A2->x = 333;   // zmenim hodnotu
 27  echo "\$A1->x je $A1->x<br />\n";  // $A1->x je 333
 28  echo "\$A2->x je $A2->x <br />\n"; // $A2->x je 333
 29  
 30  echo "<h3>Dva objekty</h3>
 31  ";
 32  $A1 = new CA(111);
 33  $A2 = new CA(222);
 34  $A2->x = 333;   // zmenim hodnotu
 35  echo "\$A1->x je $A1->x<br />\n";  // $A1->x je 111
 36  echo "\$A2->x je $A2->x <br />\n"; // $A2->x je 333
 37  
 38  echo "<h3>Klonovanie</h3>
 39  ";
 40  $A1 = new CA(111); // Vytvorím objekt
 41  $A1->x = 333;      // Používam ho
 42  // Podla povodnych zdrojov objekt mal mat metodu __clone
 43  // ale ta asi nebola implementovana, lebo nasledujuci prikaz vedie k chybe
 44  // $A2 = $A1->__clone(); // PHP Fatal error: Cannot call __clone() method on objects - use 'clone $obj' instead
 45  $A2 = clone($A1);  // Získam jeho kópiu
 46  $A2->x += 444;     // Modifikujem kópiu
 47  echo "\$A1->x je $A1->x<br />\n";  // $A1->x je 333
 48  echo "\$A2->x je $A2->x <br />\n"; // $A2->x je 777
 49  ?>
 50  <!--  *** Výsledok ***
 51  
 52  Priradenie
 53  $A1->x je 333
 54  $A2->x je 333
 55  
 56  Dva objekty
 57  $A1->x je 111
 58  $A2->x je 333
 59  
 60  Klonovanie
 61  $A1->x je 333
 62  $A2->x je 777
 63  
 64  -->
 65  
 66  </div>
 67  </body>
 68  </html>

« Spä