Avatar billede heyn Nybegynder
01. juni 2006 - 12:55 Der er 7 kommentarer og
1 løsning

Dynamiske variable i arrays og pointere i PHP

Hej Alle.

Jeg vil gerne oprette 2 Arrays således at hvis jeg f.eks. har 2 arrays $a og $b så vil:

$a[1] = 5;
$b[1] = $a[1];
echo "\$a[1] = ".$a[1]."<br>\n";
echo "\$b[1] = ".$b[1]."<br>\n";
$a[1] = 10;
echo "\$a[1] = ".$a[1]."<br>\n";
echo "\$b[1] = ".$b[1]."<br>\n";

medfører:

$a[1] = 5
$b[1] = 5
$a[1] = 10
$b[1] = 10

Kan man lave pointere i PHP og hvordan?

Mvh Christian
Avatar billede morhan Novice
01. juni 2006 - 13:00 #1
Du bruger &-tegnet til at lave en reference til en variabel

$b[1] = &$a[1];
Avatar billede heyn Nybegynder
01. juni 2006 - 13:20 #2
Fedt nok. En lille ekstra i samme skole.
Jeg har aldrig helt fattet dette med definering af arrays og hvordan oprettes de i en klasse?

Jeg har klassen 'raekke' og klassen 'felt'.

class felt{
  var value;
 
  function felt($_value){
      $this->value = $_value;
  }
}

Jeg ønsker nu oprette at klassen raekke indeholder et array arr med referance til 9 objekter af typen felt.

class raekke{
  var arr;  // Hvordan skal dette array precist defineres?

  // Hvordan skal variablene overføres i konstructoren?
  function raekke($_felt1,$felt2 ... $felt9){
      $this->arr[1] = $_felt1; // Hvordan tilskrives $arr[1] pointeren til objektet $_felt1?
      ...
      ...
  }
}
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 13:22 #3
class raekke
{
  var $arr = array();
  function raekke($args)
  {
    $this->arr = $args;
  }
}
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 13:23 #4
og så lad $args være et array :p
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 13:23 #5
eksemple på brug:

$r = new raekke(array('foo','bar','h4x'));
Avatar billede heyn Nybegynder
01. juni 2006 - 13:37 #6
Jeg har aldrig prøvet det med $args.
Skal det forstås således at hil det sige at hvis jeg laver

$felt_01 = new felt(4);
$felt_02 = new felt(6);
$raekken = new raekke(&$felt_01,&$felt_02);

Så vil $raekken->arr[0] være pointer til $felt_01?
Af praktiske årsager ser jeg gerne istedet at $raekken->arr[1] bliver til $felt_01. Hvordan gør man det?
Avatar billede heyn Nybegynder
09. november 2006 - 14:08 #7
Lægger i et svar?
Avatar billede heyn Nybegynder
18. august 2010 - 17:58 #8
Nå - Så smider jeg det selv
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester