J'ai essayé de comprendre comment procéder, mais je ne sais pas trop comment.
Voici un exemple de ce que j'essaye de faire:
class test {
public newTest(){
function bigTest(){
//Big Test Here
}
function smallTest(){
//Small Test Here
}
}
public scoreTest(){
//Scoring code here;
}
}
Voici la partie avec laquelle j'ai des problèmes, comment appeler bigTest ()?
Réponses:
Essaye celui-là:
la source
function()
partir d' une autre page .php dans une fonction de classe, puis de récupérer les résultats dans la fonction de classe? par exemple, j'ai une requête qui sélectionne tout dans une table, puis renvoie un ensemble de résultats de récupération. Est-il possible de parcourir cet ensemble de résultats dans une fonction de classes? par exempleclass query{ public function show(){ getResults(); while($stmt->fetchCollumn()){ ECHO RESULTS HERE }
L'exemple que vous avez fourni n'est pas valide en PHP et présente quelques problèmes:
n'est pas une déclaration de fonction correcte - vous devez déclarer des fonctions avec le mot-clé 'function'.
La syntaxe devrait plutôt être:
Deuxièmement, encapsuler les fonctions bigTest () et smallTest () dans public function () {} ne les rend pas privées - vous devez utiliser le mot clé private sur les deux individuellement:
De plus, il est conventionnel de mettre en majuscule les noms de classe dans les déclarations de classe («Test»).
J'espère que cela pourra aider.
la source
la source
Je pense que vous cherchez quelque chose comme celui-ci.
la source
Vous devez appeler
newTest
pour rendre les fonctions déclarées à l'intérieur de cette méthode «visibles» (voir Fonctions dans les fonctions ). Mais ce ne sont alors que des fonctions normales et aucune méthode.la source
Pour avoir une "fonction dans une fonction", si je comprends ce que vous demandez, vous avez besoin de PHP 5.3, où vous pouvez profiter de la nouvelle fonctionnalité de fermeture.
Vous pourriez donc avoir:
la source
Pour appeler n'importe quelle méthode d'un objet instancié à partir d'une classe (avec l'instruction new), vous devez "pointer" vers elle. De l'extérieur, vous utilisez simplement la ressource créée par la nouvelle instruction. A l'intérieur de tout objet PHP créé par new, enregistre la même ressource dans la variable $ this. Donc, dans une classe, vous DEVEZ pointer vers la méthode par $ this. Dans votre classe, pour appeler
smallTest
depuis l'intérieur de la classe, vous devez indiquer à PHP lequel de tous les objets créés par la nouvelle instruction que vous souhaitez exécuter, écrivez simplement:la source
Exemple 1
exemple2
la source
Vous pouvez également utiliser
self::CONST
au lieu de$this->CONST
si vous souhaitez appeler une variable statique ou une fonction de la classe actuelle.la source
production :
course f2 course f1
la source