Próbowałem wymyślić, jak to zrobić, ale nie jestem pewien, jak to zrobić.
Oto przykład tego, co próbuję zrobić:
class test {
public newTest(){
function bigTest(){
//Big Test Here
}
function smallTest(){
//Small Test Here
}
}
public scoreTest(){
//Scoring code here;
}
}
Oto część, z którą mam problemy, jak wywołać bigTest ()?
Odpowiedzi:
Spróbuj tego:
źródło
function()
z innej strony .php wewnątrz funkcji klasy, a następnie pobrać wyniki wewnątrz funkcji klasy? np. mam zapytanie, które wybiera wszystko z tabeli, a następnie zwraca zestaw wyników pobierania wszystkich. Czy można przejść przez ten zestaw wyników wewnątrz funkcji klas? np.class query{ public function show(){ getResults(); while($stmt->fetchCollumn()){ ECHO RESULTS HERE }
Podana próbka nie jest poprawnym językiem PHP i zawiera kilka problemów:
nie jest poprawną deklaracją funkcji - musisz zadeklarować funkcje za pomocą słowa kluczowego „function”.
Składnia powinna raczej wyglądać następująco:
Po drugie, zawijanie funkcji bigTest () i smallTest () w public function () {} nie czyni ich prywatnymi - powinieneś użyć słowa kluczowego private na obu z nich osobno:
Konwencją jest również zapisywanie nazw klas wielkimi literami w deklaracjach klas („Test”).
Mam nadzieję, że to pomoże.
źródło
źródło
Myślę, że szukasz czegoś takiego.
źródło
Musisz wywołać,
newTest
aby funkcje zadeklarowane wewnątrz tej metody były „widoczne” (zobacz Funkcje wewnątrz funkcji ). Ale to są tylko normalne funkcje i brak metod.źródło
Aby mieć „funkcję w funkcji”, jeśli rozumiem, o co pytasz, potrzebujesz PHP 5.3, w którym możesz skorzystać z nowej funkcji Zamknięcia.
Więc możesz mieć:
źródło
Aby wywołać jakąkolwiek metodę obiektu utworzonego z klasy (z instrukcją new), musisz na nią „wskazać”. Z zewnątrz po prostu korzystasz z zasobu utworzonego przez nową instrukcję. Wewnątrz dowolnego obiektu PHP utworzonego przez new, zapisuje ten sam zasób w zmiennej $ this. Więc wewnątrz klasy MUSISZ wskazać metodę za pomocą $ this. W Twojej klasie, aby wywołać
smallTest
z wnętrza klasy, musisz powiedzieć PHP, który ze wszystkich obiektów utworzonych przez nową instrukcję chcesz wykonać, po prostu napisz:źródło
Przykład 1
przykład2
źródło
Możesz także użyć
self::CONST
zamiast,$this->CONST
jeśli chcesz wywołać zmienną statyczną lub funkcję bieżącej klasy.źródło
wynik :
f2 run f1 run
źródło