FAQ |
Kalender |
2008-02-07, 20:31 | #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) |
||
Svara med citat |
2008-02-07, 20:49 | #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"); |
||
Svara med citat |
2008-02-07, 20:55 | #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?
|
||
Svara med citat |
2008-02-07, 21:12 | #4 | ||
|
|||
Flitig postare
|
Du får skapa en instans av klassen sedan använder du objekt->metod().
|
||
Svara med citat |
2008-02-07, 21:16 | #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(); |
||
Svara med citat |
2008-02-07, 21:21 | #6 | ||
|
|||
Medlem
|
Tanken är ju då att jag har det så här:
Class 1 { Class 2 { Function test($testar) { echo $testar; } } } |
||
Svara med citat |
2008-02-07, 21:44 | #7 | ||
|
|||
Flitig postare
|
Tveksam
Du kan inte skapa en klass i en annan klass. |
||
Svara med citat |
2008-02-07, 22:02 | #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? |
||
Svara med citat |
2008-02-07, 22:36 | #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
|
||
Svara med citat |
2008-02-15, 16:55 | #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 med citat |
Svara |
|
|