Arasındaki fark nedir ->

2 Cevap php

Bu şey uzun süre adamcağız beni ve ben hiçbir yerde bulamıyorum!

Arasında php sınıfları kullanarak :: ve ne zaman fark nedir ->

Bana bir örnek vereyim.

Sınıfım adlı bir sınıf düşünün ve bu sınıfta bir fonksiyon myFunction var

Kullanma arasındaki fark nedir:

MyClass myclass = new MyClass
myclass::myFunction();

veya

MyClass myclass = new MyClass
myclass->myFunction();

Teşekkür ederim

2 Cevap

"->" örnek yöntem çağrıları için belirtildiği gibi ise, "::" statik yöntem çağrıları için

:: "parent ::" statik ve statik olmayan iki ana yöntem için kullanılabilecek bir temel sınıfın, fonksiyonları erişmek için üst kullanırken hariç

abstract class myParentClass
{
   public function foo()
   {
      echo "parent class";
   }
}

class myChildClass extends myParentClass
{
   public function bar()
   {
      echo "child class";
      parent::foo();
   }
}

$obj = new myChildClass();
$obj->bar();

"::" Sınıfının statik yöntemleri çağırmak için olduğunu. Yani, siz kullanabilirsiniz:

MyClass::myStaticFunction()

ancak:

MyClass->myStaticFunction()