Gå til innhold

Kort spørsmål i OOP ang. ::-operatoren og extend


Anbefalte innlegg

PHP

<?php

class {

 

};

 

class extends {

function c() {

echo "hello";

}

};

 

b::c();

?>

 

Er ganske ny på OOP så jeg lurer på hvorfor den lager en E_STRICT type notis?

"Non-static method b::c() should not be called statically"

 

Hva betyr non-static method? Og hvordan kaller man den statically?

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

EDIT:

Ahh. Du må definere funksjonen som statisk :)

 

Som dette:

PHP

<?php

class {

 

};

 

class extends {

public static function c() {

echo "hello";

}

};

 

b::c();

?>

 

Eller leder jeg i feil retning nå? :confused:

Endret av Slettet+142
Lenke til kommentar
Gjest Slettet+142

Jeg vet ikke helt :/

Jeg sendte deg en link til siden så du kunne "utforske" manualen OOP i PHP4.

Men jeg tror ikke at de er støttet :/

 

Men forhåpentligvis vet noen andre det :)

Lenke til kommentar
Gjest Slettet-df17e

Nei, MC2, man har ikke støtte for det. Dette er noe som ble introdusert i verson 5 av PHP :)

 

http://php.net/OOP5 har du også en god forklaring på det meste når det kommer til bruk av objekter i PHP.

Endret av Slettet-df17e
Lenke til kommentar
Takk!

 

Men hva betyr egentlig public og static visibility? Og er disse visibilities støttet av PHP 4?

8661940[/snapback]

 

Static gjør at du kan kalle funksjonen utan å lage eit objekt av klassen.

 

Som:

 

Foo::bar();

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å
×
×
  • Opprett ny...