Ich habe versucht herauszufinden, wie ich das machen soll, bin mir aber nicht ganz sicher, wie.
Hier ist ein Beispiel dafür, was ich versuche zu tun:
class test {
public newTest(){
function bigTest(){
//Big Test Here
}
function smallTest(){
//Small Test Here
}
}
public scoreTest(){
//Scoring code here;
}
}
Hier ist der Teil, mit dem ich Probleme habe. Wie rufe ich bigTest () auf?
Antworten:
Probier diese:
quelle
function()
von einer anderen .php-Seite innerhalb einer Klassenfunktion auszuführen und dann Ergebnisse innerhalb der Klassenfunktion abzurufen? Beispiel: Ich habe eine Abfrage, die alle aus einer Tabelle auswählt und dann eine Ergebnismenge zum Abrufen aller zurückgibt. Ist es möglich, diese Ergebnismenge innerhalb einer Klassenfunktion zu durchlaufen? zBclass query{ public function show(){ getResults(); while($stmt->fetchCollumn()){ ECHO RESULTS HERE }
Das von Ihnen bereitgestellte Beispiel ist kein gültiges PHP und weist einige Probleme auf:
ist keine ordnungsgemäße Funktionsdeklaration - Sie müssen Funktionen mit dem Schlüsselwort 'function' deklarieren.
Die Syntax sollte eher lauten:
Zweitens macht das Umschließen der Funktionen bigTest () und smallTest () in public function () {} sie nicht privat - Sie sollten das private Schlüsselwort für beide einzeln verwenden:
Es ist auch üblich, Klassennamen in Klassendeklarationen groß zu schreiben ('Test').
Hoffentlich hilft das.
quelle
quelle
Ich denke, Sie suchen nach so etwas.
quelle
Sie müssen aufrufen
newTest
, um die in dieser Methode deklarierten Funktionen "sichtbar" zu machen (siehe Funktionen innerhalb von Funktionen ). Aber das sind dann nur normale Funktionen und keine Methoden.quelle
Um eine "Funktion innerhalb einer Funktion" zu haben, benötigen Sie, wenn ich verstehe, was Sie fragen, PHP 5.3, wo Sie die neue Closure-Funktion nutzen können.
Sie könnten also haben:
quelle
Um eine Methode eines Objekts aufzurufen, das aus einer Klasse instanziiert wurde (mit der Anweisung new), müssen Sie darauf "zeigen". Von außen verwenden Sie einfach die Ressource, die durch die neue Anweisung erstellt wurde. In jedem von new erstellten Objekt speichert PHP dieselbe Ressource in der Variablen $ this. Innerhalb einer Klasse MÜSSEN Sie also mit $ this auf die Methode verweisen. Um in Ihrer Klasse
smallTest
innerhalb der Klasse aufzurufen , müssen Sie PHP mitteilen, welches der Objekte, die mit der neuen Anweisung erstellt wurden, die Sie ausführen möchten, einfach schreiben:quelle
Beispiel 1
Beispiel2
quelle
Sie können auch
self::CONST
anstelle von verwenden,$this->CONST
wenn Sie eine statische Variable oder Funktion der aktuellen Klasse aufrufen möchten.quelle
Ausgabe :
f2 run f1 run
quelle