Gå til innhold

Bruke samme arrays utenfor og inni en klasse?


Anbefalte innlegg

Utenfor klassen (før) så definerer jeg noen $bruker arrays.

Jeg lurer på hvordan jeg skal kunne bruke verdiene til disse i en funksjon i en klasse?

 

Har da dette til nå:

<?php

$bruker['var1'] = 'Hei';
$bruker['var2'] = 'Hallo';

class C {

	public function __construct($var) {
		$bruker = $var['Bruker'];
	}

	public function SF() {
		echo var_dump($bruker['var1']);
	}

}

$vars = array('Bruker' => $bruker);

$val = new C($vars);

echo $val->SF();

?>

 

Dette printer ut NULL.

Lenke til kommentar
Videoannonse
Annonse

<?php

$bruker['var1'] = 'Hei';
$bruker['var2'] = 'Hallo';

class C {
	private $bruker = array();

	public function __construct($var) {
		$this->bruker = $var['Bruker'];
	}

	public function SF() {
		echo var_dump($this->bruker[]);
	}

}

$vars = array('Bruker' => $bruker);

$val = new C($vars);

$val->SF();

?>

 

Som du ser så må du referere til klassevariablen med $this->VARIABELNAVN (OBS: IKKE bruk $this->$variabelnavn fordi det er noe annet igjen). Det er en god ide å begrense synligheten til klassevariabler der det er hensiktsmessig for å unngå at en variabel plutselig har en annen verdi enn det du trodde den skulle ha eller hvis en endring av en verdi ikke skal skje uten at noe annet også skjer. Hvis du da har en privat variabel og en synlig metode som endrer verdien samtidig som den gjør noe annet så er biffen sagt (eller hva nå det uttrykket var).

Lenke til kommentar

Globale variabler fjerner større deler av poenget ved objektorientert programmering.

 

Med andre ord; det kan være at du tror du vil bruke globale variabler til å løse et problem, men egentlig så er det ikke det du vil.

 

Jepp bruker løsningen du foreslo:thumbup:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...