/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problemer med klasser...
Fra : Jacob Volstrup


Dato : 08-08-01 10:21

Hej,

jeg havde gang i en klasse til at styre mine sessioner. Desværre virker den
ikke. Jeg har fundet ud af at det er mine variabler i klassen den er gal
med. Hvad kan grunden til dette være?

class Session {
var adresse; // Brugerens ip-adresse. Skal bruges mange steder
var rettigheder; // Er som standard 1 (værdi kan derved ændres ved fx.
login)
}

Når jeg prøver at oprette den, får jeg følgende fejlbesked:
Fatal error: Cannot instantiate non-existent class: session in
c:/www/netspecialisten.dk/web/index.php on line 4
(linie 4 er der hvor jeg prøver at oprette klassen (new))

På forhånd tak.

mhv Jacob Volstrup



 
 
Johan (08-08-2001)
Kommentar
Fra : Johan


Dato : 08-08-01 10:30

> class Session {
> var adresse; // Brugerens ip-adresse. Skal bruges mange steder
> var rettigheder; // Er som standard 1 (værdi kan derved ændres ved fx.
> login)
> }

Du bliver jo nødt til at lave nogle funktioner. F.eks. eksempel til at sætte
adresse og rettigheder.

Class:

class Session {
var $adresse;
var $rettigheder;

function setValues($adresse, $rettigheder=1) {
$this->adresse = $adresse;
$this->rettigheder = $rettigheder;
}

function printValues() {
echo "Adresse: ".$this->adresse;
echo "<br>Rettigheder: ".$this->rettigheder;
}
}


Fil hvor class'en bruges:

include("classnavn.inc.php");
$ses = new Session();
$ses->setValues($PHP_SELF, 4);
$ses->printValues();

skulle gerne give outputtet:
Adresse: [din_ip]
Rettigheder: 4

Ku det bruges?

mvh

Johan



Niels Andersen (08-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 08-08-01 12:01

"Jacob Volstrup" <volstrup@avanceret.dk> wrote in message
news:4w7c7.193$uI6.25660@news000.worldonline.dk...
> class Session {
> Fatal error: Cannot instantiate non-existent class: session in

Måske fordi du skriver det med stort forbogstav ét sted, og med lille et
andet sted?

Og så mener jeg i øvrigt ikke at funktioner er et KRAV... :)


Mvh.

Niels Andersen



Johan (08-08-2001)
Kommentar
Fra : Johan


Dato : 08-08-01 12:05

> Og så mener jeg i øvrigt ikke at funktioner er et KRAV... :)

Muligvis ikke. Men kan ikke se fordelen med classes hvis man ikke bruger
funtioner i classen? Giv et eksempel hvor det f.eks. er brugbart?
Ehm?

mvh

Johan



Niels Andersen (08-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 08-08-01 12:09

"Johan" <tcr480@ofir.dk> wrote in message
news:3b711cff$0$234$edfadb0f@dspool01.news.tele.dk...
> > Og så mener jeg i øvrigt ikke at funktioner er et KRAV... :)
> Muligvis ikke. Men kan ikke se fordelen med classes hvis man ikke bruger
> funtioner i classen?

Det har du helt ret i, men det er da fuldstændigt irrelevant for fyrens
problem. :)
Hans problem bliver ikke løst uanset hvor mange funktioner han definerer.

> Giv et eksempel hvor det f.eks. er brugbart?

Jeg har set det brugt i javascript, men det var vist noget med at værdierne
i arrays i javascript alle skal have samme type, eller sådan noget...

Hvis ikke der er nogen funktioner, bliver det blot til en variabel-samling,
og der kan man vist lige så godt bruge et array.


Mvh.

Niels Andersen



Jacob Volstrup (08-08-2001)
Kommentar
Fra : Jacob Volstrup


Dato : 08-08-01 12:09

> > Og så mener jeg i øvrigt ikke at funktioner er et KRAV... :)
>
> Muligvis ikke. Men kan ikke se fordelen med classes hvis man ikke bruger
> funtioner i classen? Giv et eksempel hvor det f.eks. er brugbart?
> Ehm?

Jeg har blot skåret i min klasse. Oprindeligt var der skam funktioner, men
klassen virkede ikke. Derfor skar jeg væk, og fandt ud af at det var mine
variabler som bremsede hele skidtet.
Desuden kan siges, at jeg bruger stort 'S' begge steder:

$mysesh = new Session;

Så jeg forstår stadig ikke hvad der kan være galt.

mvh Jacob Volstrup



Niels Andersen (08-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 08-08-01 12:14

"Jacob Volstrup" <volstrup@avanceret.dk> wrote in message
news:z59c7.205$uI6.28370@news000.worldonline.dk...
> Desuden kan siges, at jeg bruger stort 'S' begge steder:
> $mysesh = new Session;

Jeg når frem til at følgende kildekode skulle give din fejl (Har selv sat en
linje ind til sidst):

<?
class Session {
var adresse; // Brugerens ip-adresse. Skal bruges mange steder
var rettigheder; // Er som standard 1 (værdi kan derved ændres ved fx.
login)
}
$mysesh = new Session;
var_dump($mysesh);
?>

Det giver en parse error i linjen med "var adresse".
Hvis jeg lige sætter et dollartegn ($) forand "adresse" og "rettigheder" får
jeg følgende output:

object(session)(0) {
}

Hvilket tyder på at det virker. Jeg kan altså ikke genskabe din fejl.


Mvh.

Niels Andersen



Johan (08-08-2001)
Kommentar
Fra : Johan


Dato : 08-08-01 12:19

> Det giver en parse error i linjen med "var adresse".
> Hvis jeg lige sætter et dollartegn ($) forand "adresse" og "rettigheder"
får
> jeg følgende output:
>
> object(session)(0) {
> }
>
> Hvilket tyder på at det virker. Jeg kan altså ikke genskabe din fejl.
>

Jamen som jeg viste i mine eksempler skal der vel $ foran adresse osv.?
Eller er det bare mig?

mvh

Johan



Jacob Volstrup (08-08-2001)
Kommentar
Fra : Jacob Volstrup


Dato : 08-08-01 12:41

> > Hvilket tyder på at det virker. Jeg kan altså ikke genskabe din fejl.
> >
>
> Jamen som jeg viste i mine eksempler skal der vel $ foran adresse osv.?
> Eller er det bare mig?
>

Jeg takker mange gange for hjælpen. Jeg ved ikke lige hvorfor jeg havde
overset de manglende '$', men det er rettet nu. Mange tak for hjælpen

Mvh Jacob Volstrup



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste