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