PHP: Eine benutzerdefinierte Funktion im Konstruktor aufrufen?

7

Ich habe eine Klasse userAuth in seinem Konstruktor Ich habe Code hinzugefügt, um zu überprüfen, ob der Benutzer gültig ist oder nicht, wenn es keinen Wert in der Sitzung gibt, dann überprüfe ich Cookies (als Teil von "Remember Me" -Feature), if Es gibt einen Wert innerhalb von Cookies, dann rufe ich eine Funktion ConfirmUser auf, um ihre Authentizität von der Datenbank zu überprüfen. Auf der Grundlage des Wertes, der von der Funktion confirmUser zurückgegeben wird, gebe ich einen bool-Wert (true oder fales) im Konstruktor zurück.

Ich habe meine Klasse als:

erstellt %Vor%

confirmUser function nimmt zwei Parameter vom Typ string und gibt return einen ganzzahligen Wert von 0, 1, 2 zurück.

Ich kann keinen Code von confirmUser function im Konstruktor hinzufügen, da ich diese Funktion an einigen anderen Stellen in meiner Anwendung verwende.

Ich möchte also wissen, wie man eine benutzerdefinierte Funktion innerhalb des Konstruktors in PHP aufruft. Bitte helfen.

Danke!

    
Prashant 02.12.2010, 13:41
quelle

4 Antworten

22

$ this- & gt; nameOfFunction ()

Aber wenn sie in einer Klasse sind, heißen sie Methoden.

    
DampeS8N 02.12.2010, 13:55
quelle
3

Es gibt keinen Unterschied beim Aufruf einer Funktion innerhalb eines Konstruktors als beim Aufruf von einer anderen Stelle aus. Wenn die Methode in derselben Klasse deklariert ist, sollten Sie this->function()

verwenden

Übrigens, in php5 wird vorgeschlagen, Ihren Konstruktor wie folgt zu benennen:
function __construct()

Wenn nicht, dann setze public keyword vor deine Konstruktor-Definition wie dieses public function userAuth()

    
Caner 02.12.2010 13:45
quelle
1

Sie können mit $ this

anrufen %Vor%     
Shakti Singh 02.12.2010 13:58
quelle
0

Seien Sie vorsichtig bei der Verwendung von $ this in einem Konstruktor, da dies in einer Erweiterungshierarchie zu unerwartetem Verhalten führen kann:

%Vor%

Ausgabe:

%Vor%

in Erwägung nachstehender Gründe:     

%Vor%

Ausgabe:

%Vor%     
adsc 26.06.2017 10:49
quelle

Tags und Links