When self
is used with the ::
operator it refers to the current class, which can be done both in static and non-static contexts. $this
refers to the object itself. In addition, it is perfectly legal to use $this
to call static methods (but not to refer to fields).