Wann würden Sie das Schlüsselwort $ this in PHP verwenden?

8

Wann würden Sie das $this Schlüsselwort in PHP verwenden? Soweit ich weiß, bezieht sich $this auf das erstellte Objekt, ohne den Namen des Objekts zu kennen.

Auch das Schlüsselwort $this kann nur innerhalb einer Methode verwendet werden?

Ein Beispiel wäre toll zu zeigen, wenn Sie $this verwenden können.

    
Imran 21.12.2010, 16:35
quelle

11 Antworten

6

Eine Klasse kann ihre eigenen Konstanten, Variablen ("Eigenschaften" genannt) und Funktionen ("Methoden" genannt) enthalten.

%Vor%

Einige Beispiele für $ pseudovariable:

%Vor%

Das obige Beispiel gibt Folgendes aus:

  • $ das ist definiert (A)
  • $ das ist nicht definiert.
  • $ das ist definiert (B)
  • $ das ist nicht definiert.
Greg 21.12.2010, 16:37
quelle
3

Der häufigste Anwendungsfall ist die objektorientierte Programmierung, wenn Sie innerhalb einer Klasse definieren oder arbeiten. Zum Beispiel:

%Vor%

Wie Sie sehen, können wir innerhalb der Funktion run die Variable $this verwenden, um auf die Instanz der Horse-Klasse zu verweisen, in der wir uns "befinden". Die zweite Sache, die Sie beachten sollten, ist, dass, wenn Sie 2 Horse-Klassen erstellen, die $this -Variable innerhalb jedes einzelnen auf diese spezifische Instanz der Horse-Klasse verweist, nicht auf beide.

    
Riley Dutton 21.12.2010 16:38
quelle
2

Sie würden $ nur verwenden, wenn Sie objektorientierte Programmierung in PHP durchführen. Bedeutung, wenn Sie Klassen erstellen. Hier ist ein Beispiel:

%Vor%     
Amir Raminfar 21.12.2010 16:37
quelle
1

Es wird in der objektorientierten Programmierung (OOP) verwendet:

%Vor%
  

Die Pseudovariable $ this ist verfügbar   wenn eine Methode von einem aufgerufen wird   Objektkontext $ Dies ist eine Referenz   zu dem aufrufenden Objekt (normalerweise der   Objekt, zu dem die Methode gehört,   aber möglicherweise ein anderes Objekt, wenn die   Methode wird statisch aus dem aufgerufen   Kontext eines sekundären Objekts).

    
Evert 21.12.2010 16:37
quelle
1

Wird verwendet, wenn Sie mit lokalen Variablen arbeiten möchten.

Sie können auch mehr darüber hier lesen.

%Vor%     
ngen 21.12.2010 16:40
quelle
1

Einmal weiß ich, dass ich das this -Äquivalent in anderen Sprachen verwende, um eine 'Fluent'-Schnittstelle zu implementieren; Jede Klassenmethode, die andernfalls void zurückgeben würde, gibt stattdessen this zurück, so dass Methodenaufrufe leicht miteinander verkettet werden können.

%Vor%

Das obige könnte wie folgt heißen:

%Vor%

Was für einige Dinge nützlich sein kann.

    
Andrew Barber 21.12.2010 16:38
quelle
1

$ Dies wird verwendet, um einen Bezug auf die aktuelle Instanz eines Objekts herzustellen. So können Sie Dinge tun wie:

%Vor%

Auch ein anderer cooler Einsatz ist, dass Sie Methoden verketten können:

%Vor%     
daniels 21.12.2010 16:50
quelle
1

$ this wird verwendet, wenn Sie eine neue Instanz eines Objekts erstellt haben.

Stellen Sie sich das zum Beispiel vor:

%Vor%

Um auf die Methode getHello zugreifen zu können, muss ich eine neue Instanz der Klasse Test erstellen:

%Vor%

Tatsächlich wird $ innerhalb der Klasse verwendet, wenn es aktiviert wird. Es wird als scope bezeichnet.

Innerhalb Ihrer Klasse verwenden Sie $ this (für den Zugriff auf * $ _ hallo *), aber außerhalb der Klasse bezieht sich $ this NICHT auf die Elemente innerhalb Ihrer Klasse (wie * $ _ hallo *), ist es $ obj das tut.

Der Hauptunterschied zwischen $ obj und $ this besteht nun darin, dass $ obj von außerhalb , einige Einschränkungen treten auf: Wenn Sie etwas privat oder protected in Ihrer Klasse definieren, wie meine Variable * $ _ hallo *, $ obj < strong> KANN NICHT darauf zugreifen (es ist privat!), aber $ this kann , becase $ dies in der Klasse hinterlassen.

    
Cyril N. 21.12.2010 16:51
quelle
0

nein, ich denke, deine Idee ist falsch. $this wird verwendet, wenn auf ein Objekt der gleichen Klasse verwiesen wird .. wie dieses

denke, wir haben einen Variablenwert $ var und in THAT Instanz dieses Objekts sollte auf 5 gesetzt werden

$ this- & gt; var = 5;

    
Sudantha 21.12.2010 16:38
quelle
0

Die Verwendung von $ besteht darin, Methoden oder Instanzvariablen zu referenzieren, die zum aktuellen Objekt gehören

$ this- & gt; name = $ name oder $ this- & gt; callSomeMethod ()

wird die Variable oder Methode verwenden, die im aktuellen Objekt implementiert ist oder nicht.

Wenn Sie eine Implementierung der Elternklasse gezielt aufrufen möchten, tun Sie etwas wie

parent :: callSomeMethod ()

    
Joe 21.12.2010 16:43
quelle
-1
%Vor%     
Treena 11.01.2016 07:09
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset Zend Framework, Sessions und HttpOnly ___ tag123php ___ PHP ist eine weit verbreitete, dynamische, objektorientierte und interpretierte Skriptsprache, die primär für die serverseitige Webentwicklung entwickelt wurde. ___ answer11936039 ___

Fügen Sie dies Ihrer application.ini-Datei hinzu.

%Vor%     
___ tag123zendframework ___ Zend Framework ist ein Open-Source, objektorientiertes Web Application Framework, implementiert in PHP 7.1 und lizensiert unter der New BSD License. Zend Framework-Anwendungen können auf jedem PHP-Stack ausgeführt werden, der die technischen Anforderungen erfüllt. ___ answer4462719 ___

Probieren Sie Bootstrap aus, um %code% (irgendwo vor der ersten Initialisierung der Sitzung) auszuführen, aber es sollte auch mit der Datei app.ini funktionieren.

    
___ qstntxt ___

Ich möchte mein Session-Cookie %code% erstellen. Basierend auf diesem Artikel , fügte ich hinzu das zu meinem %code% :

%Vor%

Wenn ich mir das Session-Cookie in Firecookie ansehe, ist es leider nicht markiert als %code% wie ich angegeben habe. Welchen Schritt vermisse ich?

    
___ answer16250948 ___

Damit dies zu 100% sicher ist.

Der Server sollte die Option http trace nicht zulassen. Der HTTP-Options-Trace meldet die Sitzungs-ID. Wenn ein Angreifer ein Java-Applet, Flash oder JavaScript mit Ajax injizieren kann, kann der Angreifer auch mit der eingestellten httponly-Flagge Cookies stehlen ...

    
___ tag123session ___ Eine Sitzung bezieht sich auf alle Anforderungen, die ein einzelner Client an einen Server stellt. Eine Sitzung ist spezifisch für den Benutzer und für jeden Benutzer wird eine neue Sitzung erstellt, um alle Anfragen von diesem Benutzer zu verfolgen. ___ tag123httponly ___ HttpOnly ist ein Flag im Cookie-Header, um Daten aus JavaScript auszublenden ___