PHP stdClass nedir?

6 Cevap php

Ben Google stdClass hakkında arandı, ancak bir cevap bulamadık.

stdClass ne olduğunu tanımlamak edin.

6 Cevap

stdClass tür Object Java veya object Python (Edit: ama aslında evrensel bir üs olarak kullanılabilir değil gibi, php jenerik boş sınıf sınıf; için Ciaran @ teşekkürler pointing this out).

Bu gibi nesneler, anonim, dinamik özellikleri, için kullanışlıdır

Dynamic Properties in PHP and StdClass, örneğin bkz.

Diğer iki cevaplar söylediklerine rağmen, stdClass PHP nesneler için not temel sınıftır. Bu oldukça kolayca gösterilebilir:

class Foo{}
$foo = new Foo();
echo ($foo instanceof stdClass)?'Y':'N';
// outputs 'N'

stdClass yerine nesnelere diğer türleri döküm sırasında kullanılan sadece genel bir 'boş' sınıftır. PHP bir temel nesnenin bir kavram var inanmıyorum

Fazlalaştı, bir stdClass nesne json_decode kullanımı () de oluşturulabilir.

Aynı şekilde,

$myNewObj->setNewVar = 'newVal'; 

Bir stdClass nesnesi verir - otomatik döküm

Ben yanlış yazım bugün öğrendim:

$GLOBASLS['myObj']->myPropertyObj->myProperty = 'myVal';

Serin!

stdClass is a another great PHP feature. You can create a anonymous PHP class. Lets check an example.

$page=new stdClass();
$page->name='Home';
$page->status=1;

şimdi bir sayfa nesnesi ile başlatmak ve bunun üzerine baz yürütecek bir başka sınıf var düşünüyorum.

class PageShow{

   public $currentpage;

   public function __construct($pageobj){
      $this->currentpage=$pageobj;

   }

  public function show(){
      echo $this->currentpage->name;
      $state=($this->currentpage->name==1)?'Active':'Inactive';
      echo 'This is '.$state.' page';
  }


}

şimdi bir Sayfa Nesne ile bir ne PageView nesnesi oluşturmak zorunda. İşte bunun için yeni bir sınıf şablonu yazmaya gerek yok sadece anında bir sınıf oluşturmak için stdclass kullanabilirsiniz.

    $pageview=new PageView($page);
    $pageview->show();

Aslında boş stdclass oluşturma çalıştı ve boş sınıfa hızını karşılaştırdık.

class emp{}

sonra 1000 stdClasses ve ÇYP'lerini yaratarak ilerledi stdClasses 1700 mikrosaniye sürmüştür ise boş ... sınıflar çevresinde 1100 mikrosaniye yapılmıştır. Yani ben bu kadar kötü (diziler çok daha hızlı yazma ve okuma için olan) bunun için nesneleri kullanmak istiyorsanız veri depolamak için kendi kukla sınıf oluşturmak için onun daha iyi sanırım.