04/07_staticd_FS.php


  1  <html>
  2  <body>
  3  <?php
  4  
  5  class CA
  6  {
  7    public $x="?";
  8    public static $p="??";
  9    public function CA($x)
 10    {
 11      $this->x=$x;
 12      echo "CA::CA($x)<br />\r\n";
 13    }
 14  
 15    public static function S ()
 16    {
 17      // echo "CA::S1: $this->x <br />\n";   // Chyba: Using $this when not in object context
 18      echo "CA::S2:". self::$p." <br />\n";
 19      echo "CA::S3:". CA::$p." <br />\n";
 20    }
 21  
 22    public function F ()
 23    {
 24      echo "CA::F1: $this->x <br />\n";
 25      echo "CA::F2:". self::$p." <br />\n";
 26      echo "CA::F3:". CA::$p." <br />\n";
 27    }
 28  }
 29  
 30  class CB extends CA
 31  {
 32    public function CB($x)
 33    {
 34      $this->x=$x;
 35      echo "CB::CB($this->x)<br />\r\n";
 36    }
 37  
 38    public static function S ()
 39    {
 40      echo "CB::S2:". self::$p." <br />\n";
 41      echo "CB::S3:". CA::$p." <br />\n";
 42    }
 43  
 44    public function F ()
 45    {
 46      echo "<b>Volanie parent::S()</b><br />\n";
 47      parent::S();
 48      echo "<b>Volanie self::S()</b><br />\n";
 49      self::S();
 50    }
 51  }
 52  
 53  echo "<b>Vytvorenie objektu \$A</b><br />\n";
 54  $A = new CA("A");
 55  CA::$p="Bum";
 56  echo "<b>Volanie \$A->S()</b><br />\n";
 57  $A->S();
 58  echo "<b>Volanie \$A->F()</b><br />\n";
 59  $A->F();
 60  echo "<b>Volanie CA::S()</b><br />\n";
 61  CA::S();
 62  // echo "<b>Volanie CA::F()</b><br />\n";
 63  // CA::F();  // Chyba: Using $this when not in object context
 64  
 65  echo "<br /><b>Vytvorenie objektu \$B</b><br />\n";
 66  $B = new CB("B");
 67  CB::$p="Juj";
 68  echo "<b>Volanie \$B->S()</b><br />\n";
 69  $B->S();
 70  echo "<b>Volanie \$B->F()</b><br />\n";
 71  $B->F();
 72  echo "<b>Volanie CB::S()</b><br />\n";
 73  CB::S();
 74  
 75  echo "<br /><b>Overenie hodnôt premenných</b><br />\n";
 76  echo "\$A->x=$A->x  CA::\$p=".CA::$p."<br />\n";
 77  echo "\$B->x=$B->x  CB::\$p=".CB::$p."<br />\n";
 78  
 79  ?>
 80  </body>
 81  </html>

« Späť