PHP Class argumenter i funksjoner

stemmer
3

Jeg har problemer med å bruke et argument fra klassen min i en av den klassens funksjoner.

Jeg har en klasse som heter selskapet:

class company {

   var $name;

   function __construct($name) {
      echo $name;
   }

   function name() {
      echo $name;
   }
}

$comp = new company('TheNameOfSomething');
$comp->name();

Når jeg instantiate det (nest siste linje), konstruere magiske metoden fungerer fint, og ekko ut TheNameOfSomething. Men når jeg kaller navnet () -funksjonen, får jeg ingenting.

Hva gjør jeg galt? Alle hjelpe er verdsatt. Hvis du trenger noen annen info, bare spør!

Takket
-Giles
http://gilesvangruisen.com/

Publisert på 24/10/2009 klokken 18:58
kilden bruker
På andre språk...                            


2 svar

stemmer
12

Du må angi klassen egenskapen ved hjelp av $ dette søkeordet.

class company {

   var $name;

   function __construct($name) {
      echo $name;
      $this->name = $name;
   }

   function name() {
      echo $this->name;
   }
}

$comp = new company('TheNameOfSomething');
$comp->name();
Svarte 24/10/2009 kl. 19:01
kilden bruker

stemmer
1

Når du bruker $ navn i begge metodene, er begrenset til funksjonen at det er skapt i omfanget av $ name variabelen. Andre metoder eller inneholder klassen ikke er i stand til å lese variabel eller engang vet den finnes, så du må sette klassen løst med $this->prefiks.

$this->name = $name;

Dette gjør at verdien til å være vedvarende, og tilgjengelig for alle funksjoner i klassen. Videre er variabel publikum, så noen script eller klassen kan lese og endre verdien av variabelen.

$comp = new company();

$comp->name = 'Something';

$comp->name(); //echos 'Something'
Svarte 24/10/2009 kl. 19:09
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more