PHP: l'Appel d'une fonction définie par l'utilisateur à l'intérieur de constructeur?
J'ai une classe userAuth
à l'intérieur de son constructeur, j'ai ajouté du code pour vérifier que l'utilisateur est valide ou pas, si il n'y a pas de valeur en session puis-je vérifier les cookies (comme une partie de "se Souvenir de Moi"), si il y a un peu de valeur à l'intérieur de cookies puis-je appeler une fonction ConfirmUser
pour vérifier son authenticité à partir de la base de données. Sur la base de la valeur renvoyée par la confirmUser fonction je vais y retourner un booléen (true ou fales) de la valeur dans le constructeur.
J'ai créé ma classe:
<?php
class userAuth {
function userAuth(){
//code
}
function confirmUser($username, $password){
//code
}
}
$signin_user = new userAuth();
?>
confirmUser
prise de fonction de chaîne de deux paramètres de type et de retour d'un entier de valeur 0, 1, 2.
Je ne peux pas ajouter de code de confirmUser
fonction à l'intérieur du constructeur, car je suis à l'aide de cette fonction à d'autres endroits dans mon application.
Donc, je veux savoir comment faire pour appeler une fonction définie par l'utilisateur à l'intérieur de constructeur en PHP. S'il vous plaît aider.
Merci!
S'assurer d'inclure ou d'exiger de déclaration de fonction de confirmUser, et vous pouvez les appeler
confirmUser
à l'intérieur de constructeur...quel est le problème?Vous avez dit que vous êtes de retour d'une valeur bool dans le constructeur qui est un peu étrange. Un constructeur ne peut pas retourner quelque chose, mais d'une instance de sa classe. Pouvez-vous développer?
OriginalL'auteur Prashant | 2010-12-02
Vous devez vous connecter pour publier un commentaire.
$this->nameOfFunction()
Mais lorsqu'ils sont dans une classe, elles sont appelées Méthodes.
Je soupçonne que vous avez pensé que, jusqu'à ce que le constructeur a été terminé, il n'y avait pas un '$' pour appeler des méthodes sur; mais il y est. En PHP, le nouvel objet existe, et "$this " points d'elle, dès qu'il pénètre dans le constructeur.
OriginalL'auteur DampeS8N
Il n'y a pas de différence pour l'appel d'une fonction à l'intérieur d'un constructeur que d'appeler à partir de quelque part d'autre. Si la méthode est déclarée dans la même classe que vous devez utiliser
this->function()
Par la façon dont, en php5 vous sont proposés pour le nom de votre constructeur comme suit:
function __construct()
Si pas alors de mettre
public
de mots clés avant votre constructeur de définition comme cepublic function userAuth()
OriginalL'auteur Caner
vous pouvez appeler avec $this
OriginalL'auteur Shakti Singh
Être prudent avec l'utilisation de $this dans le constructeur, bien que, parce que dans une extension de la hiérarchie, il peut provoquer un comportement inattendu:
De sortie:
Considérant ce qui suit:
De sortie:
OriginalL'auteur adsc