Разница между вызовом нестатического метода статически и не статически

Учитывая следующий код:

<?php class MyClass { public function print() { echo $this->number . "\n"; } public static function staticPrint() { echo "staticPrint\n"; } } class MyExtendedClass extends MyClass { protected $number = 100; public function extendedPrint() { $this->print(); $this::print(); // What's the difference? $this->staticPrint(); // Why is this allowed? $this::staticPrint(); echo "Print done...!\n"; } } $myExtendedClass = new MyExtendedClass(); $myExtendedClass->extendedPrint(); 

со следующим выходом:

 100 100 Print done...! 

Есть ли разница между $this->print() и $this::print() ?