Nasıl iyi ve basit bir şekilde 'bu' anahtar kelimeyi açıklamak için?

5 Cevap php

Ben uzun bir süre için 'bu' anahtar sözcüğünü kullanıyorum. Birisi bunu açıklamak bana sorduğunda Ama, bunu nasıl açıklamak için bu karıştı. Ben aynı sınıfın herhangi bir değişkeni ve yöntem erişmek için sınıfının bir yöntemi kullanabilirsiniz biliyoruz.

    class MyClass{

      function MyMethod1(){
        echo "Hello World";
      }

      function MyMethod2(){
        $this->MyMethod1();
      }

    }

Biz başlatmak gerekmez, bir sınıfın bir nesnesi ve sadece sınıf veya başka bir şey içinde kullanılabilir. Açıklamak için?

Teşekkürler

5 Cevap

A sınıfı bir nesne için bir kalıp: bu nesne (değişkenler) ve ne (işlevleri) yapabileceğiniz gibi görünüyor nasıl belirtir.

Eğer bir sınıf instanciate ise: bir nesne oluşturmak. Eğer sınıf oluşturursanız, "bu" nesne itsself başvurmak için kullanabilirsiniz. O nesneye alakalı, çünkü "bu" ayarlanamaz nedeni budur. Bu özel, salt okunur değişken bulunuyor.

this, bir sınıfın geçerli nesne örneği başvuruyor.

this olan bir örtülü bir sınıfının yöntemlere iletilen parametresi: bir yönteme kapsamlı ve nesnenin tüm üyeleri için erişim imkanı sağlar.

Adlarından da anlaşılacağı gibi, örnek yöntemleri instances sınıfının üzerinde çalışır. Nasıl hangi bir faaliyet için biliyor musunuz? İşte this parametresi için budur.

Eğer bir örnek yöntemini çağırdığınızda, gerçekten görünmez ekstra bir parametre geçiyoruz: Nesneyi onu çağırmak için. Örneğin, bu olduğunda:

class Basket {
  public function a() {
    $this-> ...;
    // ...
  }
  // ...
}

ve perde arkasında aslında Basket::a($some_basket) gibi bir şey diyorsun, $some_basket->a() diyoruz. Şimdi a() Basket sizinle çalışmak istediğiniz bilir. Eğer uğraşıyoruz geçerli nesne: Bu özel bir parametre this ifade budur.

A sınıfı bir şablon veya bir nesne için bir 'kalıp' olduğunu.

Klasik 'bisiklet' örneğini kullanmanızı sağlar. Birçok dargın bisiklet orada vardır. Ancak, biz bir bisiklet oluşturduk, ve biz 'Bu' bisiklet başvurmak için 'bu' anahtar sözcüğünü kullanabilirsiniz.

Daha fazla teknik anlamda, bir sınıf örneği olacak bir nesne için bir şablon olduğunu. Bir nesne örneği, ya da oluşturulan kendisi bir örneği oldu edildikten sonra çalışma zamanında, biz o kelime kullanabilirsiniz 'bu' dahili bu yöntemi çalışır örneğine başvurmak için.

Birkaç kişi benzer terimlerle açıkladı, ama nesne yönelimli programlamaya yabancı insanlarla konuşurken, ben "bu" gerçek ev sensin sınıf tanımı bir ev gibi, planı olduğunu açıklamak ve bu eklemek istiyorum düşündüm 'o an ile çalışıyoruz. Orada tam olarak aynı görünüyor, diğer evler olabilir, ama bu özel nesne (evi) olabilir.