Tips&Tricks delle classi in PHP4

Negli script PHP dove viene definita una classe non e' possibile "rompere" la dichiarazione con i tag di script in questo modo:


class NuovaClasse{
?>
<?php
       function NuovaClasse($str)
       {
              echo $str;
       }
}
?>

E' pero' possibile e spesso molto utile inserire i tag di inizio/fine script all'interno dei metodi:

<?php
class NuovaClasse{

       function NuovaClasse($str,$color)
       {
      ?>
            <font color="<?php echo $color; ?>">
                  <?php echo $str; ?>
            </font>
      <?php
       }
}
?>


E' anche necessario fare attenzione ai nomi dei metodi. In particolare:
   -E' sconsigliato definire i metodi con il nome delle funzioni base PHP (mail(),print(),var_dump(),ecc...)
   -E' sconsigliato definire i metodi con il nome che inizia con il doppio underscore ( '__' ) perche' viene riservato a funzioni "magiche"
   -Non e' possibile definire metodi con i nomi '__sleep()', '__wakeup'.
   -Non e' possibile definire un metodo 'stdClass' poiche' e' un nome riservato del motore Zend


In PHP non e' possibile inizializzare staticamente le proprieta' di un oggetto, se e' necessaria un' inizializzazione deve essere fatta nel costruttore come viene mostrato nell'esempio seguente. C'e' pero' un'eccezione a quanto detto, infatti e' possibile inizializzare staticamente gli array.

<?php
class NuovaClasse{

      var $str='io sono statica'
      var $arr=array("Questo", "e", "un", "array", "statico");

      function NuovaClasse()
      {
            $this->PrintVars();
      }

       function PrintVars()
      {
              echo $str;
              echo $arr[0]." ".$arr[1]." ".$arr[2]." ".$arr[3]." ".$arr[4] ;
      }
}
?>


Questa porzione di codice produce in output:
   Questo e un array statico

Il codice piu' corretto, per motivi di leggibilita', sarebbe comunque quello che inizializza tutte le prorpieta' nel costruttore come il seguente:

<?php
class NuovaClasse{
  
      var $str;
      var $arr;

      function NuovaClasse()
      {
              $this->str='io sono statica'
              $this->arr=array("Questo", "e", "un", "array", "statico");
              $this->PrintVars();
      }

      function PrintVars()
      {
              echo $str;
              echo $arr[0]." ".$arr[1]." ".$arr[2]." ".$arr[3]." ".$arr[4] ;
      }
}
?>

Privacy Policy