Gå til innhold

klasse med array()...


Anbefalte innlegg

Heisann,

 

Jeg sitter og koder litt (på en klasse) og får gjentatte ganger feilmeldingen:

 

Parse error: syntax error, unexpected '(', expecting ')' in ...

 

Og linjen der feilen slår til er:

 

public $imgcolor array(rand(0,255), rand(0,255), rand(0,255));

 

 

Noen tanker eller forslag tas imot med takk :)

Lenke til kommentar
Videoannonse
Annonse
Dersom vi kan få se linjene rundt 5 over og 5 nedenfor ville det hjulpet betraktelig ;)

 

Beklager :)

 

Her er slik det ser ut foreløpig:

 

<?php

 

class Captcha {

 

public $img;

 

//Prøvde denne varianten - Men akk samme feilmelding :/

 

public $imgcolor = array(rand(0,255), rand(0,255), rand(0,255));

 

 

private $md5;

 

public function __construct() {

 

session_start();

$this->initCaptcha();

 

}

 

private function initCaptcha() {

 

$this->md5 = md5(microtime() * mktime());

$this->md5 = substr($md5,0,7);

$this->img = imagecreatetruecolor(50,25);

 

 

}

 

}

 

?>

 

Håper det hjalp :)

Endret av tord77
Lenke til kommentar
Prøv å sette variabelen inne i construct.

 

public $imgcolor;

function __construct() {
$this->imgcolor = array(rand(0,255), rand(0,255), rand(0,255));
}

 

Jepp, Det virket :D

 

Tusen hjertelig takk!

 

Så alle arrays må initialiseres i konstruktøren ?

Lenke til kommentar

Klasse-egenskaper kan absolutt initialiseres og tilegnes default properties, men du kan ikke bruke funksjonskall.

 

<?php

class myClass {

	public $foo = array ( 1, 2, 3 => 4 ); // Works
	public $bar = array ( rand () => 1 ); // Doesn't work

}

?>

Endret av Jonas
Lenke til kommentar

Dette virker helt uten feil hos meg:

 

<?php

class Test
{
public $array = array( '2', '3', '4' );
}

$test = new Test();

echo $test->array;

?>

 

Men prøver jeg å konstruere en array på samme måte i klassen ved hjelp av variabler eller funksjoner, vil det ikke fungere.

 

Edit: Jonas postet mens jeg prøvde meg frem.

Endret av Runar
Lenke til kommentar

Kan jo legge til at man kan bruke konstanter i klasseegenskapene.

define( 'ROOT_PATH', dirname( __FILE__ ) . '/' );

class foo
{
public $bar = ROOT_PATH;

public function __construct()
{
	echo $this->bar;
}
}

Er dog ingen grunn til å gjøre det, da konstanter kan brukes (stort sett(?)) overalt i utgangspuktet.

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...