Как использовать $ this вне класса?

Можем ли мы использовать $this вне класса. Пожалуйста, посмотрите пример ниже,

 <?php class Animal { public function whichClass() { echo "I am an Animal!"; } public function sayClassName() { $this->whichClass(); } } class Tiger extends Animal { public function whichClass() { echo "I am a Tiger!"; } public function anotherClass() { echo "I am a another Tiger!"; } } $tigerObj = new Tiger(); //Tiger::whichClass(); $this->anotherClass(); 

Здесь я создал новый объект $tigerObj = new Tiger(); после этого я пытался использовать $this но это бросало ошибку. Так можно ли использовать $this извне класса? Если нет, $this относится к текущему объекту. Так почему бы нам не использовать это?

Невозможно использовать $ this таким образом, вы можете создать объект этого класса, а затем расширить методы, которые вы хотите вызвать. Смотри ниже …

 class Animal { public function whichClass() { echo "I am an Animal!"; } public function sayClassName() { $this->whichClass(); } } class Tiger extends Animal { public function whichClass() { echo "I am a Tiger!"; } public function anotherClass() { echo "I am a another Tiger!"; } } $tigerObj = new Tiger(); echo $tigerObj->anotherClass(); 

Вы получите результат: «Я еще один тигр!»

$ невозможно использовать внешний класс, поэтому вы можете сделать статический метод и использовать этот Tiger :: anotherClass. Ссылка на doc

 class Animal { public function whichClass() { echo "I am an Animal!"; } public function sayClassName() { $this->whichClass(); } } class Tiger extends Animal { public function whichClass() { echo "I am a Tiger!"; } public static function anotherClass() { echo "I am a another Tiger!"; } } $tigerObj = new Tiger(); //Tiger::whichClass(); Tiger::anotherClass(); 

НЕТ, вы не можете использовать $ this вне сферы действия класса

пример :

 1 $this=new \DateTime(); 2 echo $this->format('r'); 

генерирует следующую ошибку:

Fatal error: Cannot re-assign $this on line 2