Comment retourner VRAI|FAUX de la classe en PHP
Je me demandais pourquoi mon programme php n'est pas le retour de la bonne VRAIE valeur FALSE lorsque la classe est incluse ailleurs
il va quelque chose comme ceci
source: signup.php
class signup
{
function buildProfile()
{
if($logic){
$this->success = TRUE;
}else{
$this->success = FALSE;
}
}
function __construct()
{
$this->success = NULL;
$this->buildProfile
return $this->success;
}
}
et d'ailleurs je ne
include('signup.php');
$signup = new signup();
if($signup){
successFunction();
}else....
mais il ne s' $inscription == true, il se fait FAUX à chaque fois
- Je suppose que la question évidente est, qu'est-ce que $logique, et n'est-il toujours vrai?
Vous devez vous connecter pour publier un commentaire.
Constructeurs toujours renvoyer une nouvelle instance de la classe. Vous ne pouvez pas retourner tout autre type de valeur à partir d'un constructeur. Une meilleure façon de structurer votre code pourrait être quelque chose comme:
Ensuite, lorsque vous créez l'objet que vous pouvez faire:
Avec que ici :
Vous créez une instance de la classe, par l'intermédiaire de son constructeur.
Un constructeur n'est pas une fonction normale : je ne pense pas qu'il en fait "retour" quoi que ce soit : c'est juste ici, pour initialiser des données dans l'objet lors de son instanciation.
Avec qui, vous
$signup
variable est un objet, une instance de la classesignup
; ce n'est pas tout autre type de valeur, ce retour d'instruction que vous écrivez dans votre constructeur.Citant wikipédia Constructeur de la page :
Par la voie, ne pas écrire des choses comme ceci:
écrire des choses comme ceci:
Vous ne pouvez pas retourner une valeur à partir d'un constructeur.
D'un constructeur unique but est d'initialiser un objet. Dans votre exemple, $inscription est votre objet, il n'est pas une "valeur de retour" à partir du constructeur.
Vous essayez d'imiter un "défaut foncteur", une fonctionnalité qui n'est pas présent en PHP jusqu'à 5.3, par exemple, vous êtes en train d'essayer d'évaluer un objet comme s'il s'agissait d'une fonction (comme il est dit ci-dessus, les `nouveaux" renvoie toujours vous des instances de l'objet). Les objets ne sont pas des fonctions, de sorte qu'un défaut foncteur est une méthode d'instance qui obtient automatiquement exécuté lorsque son objet est appelée comme une fonction.
De toute façon, la bonne solution est dans le top réponse.
Peut-être une méthode statique serait plus approprié?
http://php.net/manual/en/language.oop5.static.php