Newsgroup: it.comp.www.php
Titolo: oop e variabili in un metodo

Ciao a tutti è possibile avere delle variabili dentro un metodo che non 
siano i membri della classe stessa? tipo:
class Ciao {
	public $uno;
 
	public function metodo() {
		$i = 0; /* è possibile avere questa varibile dentro il metodo o dovrei 
dichiararla come membro della classe al pari di $uno? */
	}
}
Ciao e grazie
Aragorn

 ha scritto nel messaggio 
news:1iE7j.9285$8j3...@tornado.fastwebnet.it...


 
Infatti il dubbio mi era venuto proprio per quel motivo! Non ci crederai 
ma in tutto il manuale in inglese del php non c'e' un esempio a 
riguardo! Ti chiedo ancora una informazione ...ma in questo caso (sempre 
preso da 
php.net
)
   class database {
    function database($server, $username, $password, $database) {
      $this->connection = mysql_connect($server, $username, $password);
      if (!$this->connection || !mysql_select_db($database, 
$this->connection)) {
        return false;
      } else {
        return true;
      }
La variabile  $this->connection a cosa si riferisce? Mi spiego...perchè 
non hanno messo direttametne $connection = mysql_connect(etc etc)? 
inoltre il $this->connection non dovrebbe riferirsi a un eventuale 
membro $connection che invece non vedo dichiarato nella classe?
Scusa le 1000 domande e grazie per le risposte!
Aragorn
Ciao e grazie
Aragorn

 ma in tutto il manuale in inglese del php non c'e' un esempio a riguardo!
Infatti non ci credo.
Aprendo 3 pagine a caso di php in inglese:
http://www.php.net/manual/en/language.oop5.patterns.php
trovi: ( e nota $classname)
---
class Example
{
    // The parameterized factory method
    public static function factory($type)
    {
        if (include_once 'Drivers/' . $type . '.php') {
            $classname = 'Driver_' . $type;
            return new $classname;
        } else {
            throw new Exception ('Driver not found');
        }
    }
}
---
http://www.php.net/manual/en/language.oop5.overloading.php
trovi (e nota $r)
---
class Setter
{
    public $n;
    private $x = array("a" => 1, "b" => 2, "c" => 3);
    public function __get($nm)
    {
        echo "Getting [$nm]\n";
        if (isset($this->x[$nm])) {
            $r = $this->x[$nm];
            print "Returning: $r\n";
            return $r;
        } else {
            echo "Nothing!\n";
        }
    }
...
---
http://www.php.net/manual/en/language.oop5.interfaces.php
trovi (e nota $template):
---
class Template implements iTemplate
{
    private $vars = array();
    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }
        return $template;
    }
}
---
Gli esempi ci sono, c'è pieno a dire il vero, basta guardare bene il codice 
(anche quello postato dalla community per esempio).
La cosa più semplice da fare in questi casi, se non trovi documentazione, 
però è scriverti una classe di 2 righe, settare la variabile $pippo 
d'ordinanza al valore che vuoi, provare un echo() e vedere se stampa. Ci 
impieghi 1 minuto e ti togli ogni dubbio.
Ciao!

 
Ma sai che li ho anche visti ma non ci ho fatto caso!!! Sarà il 
rincoglioni****o serale ;)
Mi togli un ultimo dubbio
   class database {
    function database($server, $username, $password, $database) {
      $this->connection = mysql_connect($server, $username, $password);
      if (!$this->connection || !mysql_select_db($database, 		 
$this->connection)) {
        return false;
      } else {
        return true;
      }
$this->connection no nè un membro della classe...a cosa si riferisce 
esattamente? se utilizzavo una variabile tipo $connessione al suo posto 
cambiava qualcosa?
Grazie 1000 per la disponibilità!
Aragorn

 membro $connection che invece non vedo dichiarato nella classe?
Infatti.
Dimentichi che in PHP non e` necessario dichiarare le variabili.
Se non le dichiari, all'interno di una classe sono automaticamente 
pubbliche.
Quel codice e` per PHP4 (basta vedere il nome del costruttore), quindi in 
ogni caso tutte le variabili erano pubbliche.
Sarebbe comunque buona norma dichiararle, soprattutto in PHP5. In questo 
caso io la dichiarerei protected.
Bye.
 

  
Ora è tutto molto piu' chiaro! Grazie 1000 a tutti
Aragorn