Как следует из их названия, методы экземпляра работают с экземплярами класса. Откуда они знают, над чем работать? Для этого и нужен параметр this
.
Когда вы вызываете метод экземпляра, вы действительно незаметно передаете дополнительный параметр: объект, для которого он вызывается. Например, когда у вас есть это:
class Basket {
public function a() {
$this-> ...;
// ...
}
// ...
}
и вы звоните $some_basket->a()
, за кадром вы фактически называете что-то вроде Basket::a($some_basket)
. Теперь a()
знает, с каким Basket
вы хотите работать. Этот специальный параметр - это то, к чему относится this
: текущий объект, с которым вы имеете дело.