FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Medlem
|
Hejsan hoppas ni kan hjälpa mig med detta problem.
Kod:
class testing { function getdata($testar) { if($testar == "hej") return $testar = "tja"; } function test($testar) { $testar = getdata($testar); echo $testar; } } $testing = new testing(); $testing->test("hej"); getdata i funktionen test så fungerar det. Nu till den rediga frågan går det att få tag på denna function på ett annat sätt? eller ska jag göra på något annat sätt? (Skriptet är alltså inte det äkta) ![]() |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Flitig postare
|
Kod:
class testing { function getdata($testar) { if($testar == "hej") return $testar = "tja"; } function test($testar) { $testar = $this->getdata($testar); echo $testar; } } $testing = new testing(); $testing->test("hej"); |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Medlem
|
Tack så hemst mycket men nu är det så att jag har en class till innanför testing. Hur ska jag skriva annropet för att komma åt den?
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Flitig postare
|
Du får skapa en instans av klassen sedan använder du objekt->metod().
|
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Medlem
|
Citat:
Ex Kod:
class cl1 { function konstigfunktion() { return "Tjohoo"; } } class cl2 { function annanfunktion() { $dummy = new cl1(); return $dummy->konstigfunktion(); } } $testing = new cl2(); echo $testing->annanfunktion(); |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Medlem
|
Tanken är ju då att jag har det så här:
Class 1 { Class 2 { Function test($testar) { echo $testar; } } } |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Flitig postare
|
Tveksam
Du kan inte skapa en klass i en annan klass. |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Medlem
|
En parantes:
Kan man, i mitt exempel ovan, istället använda dubbelkolon (::) för att komma åt en annan klass innehåll? Kod:
class cl1 { function konstigfunktion() { return "Tjohoo"; } } class cl2 { function annanfunktion() { // Kan man göra så här? return cl1::konstigfunktion(); } } $testing = new cl2(); echo $testing->annanfunktion(); Kan du ge exempel på varför du vill göra som du frågade om? |
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Det går att använda dubbelkolon för att anropa en annan klass om det var det som var din fråga
|
||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Nykomling
|
Syntaxen Klassnamn::metod() används för att anropa en klasmetod statiskt, dvs utan att först instansiera ett objekt av klassen.
I övrigt så är det som HenSod säger, lokala klassdefinitioner finns inte i PHP. Känns spontant inte som något man behöver varje dag om man strukturerar sin kod hyggligt. |
||
![]() |
![]() |
Svara |
|
|