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>