1134 votes

Ce qui est stdClass php ?

J'ai cherché sur stdClass dans Google, mais ne pouvait pas trouver une réponse.

Veuillez définir ce qu' stdClass .

1154voto

Ciaran McNulty Points 10503

En dépit de ce que les deux autres réponses dire, stdClass est pas la classe de base pour les objets en PHP. Cela peut être démontré assez facilement:

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

stdClass est plutôt juste un générique de 'vide' classe utilisée lors de la conversion d'autres types d'objets. Je ne crois pas qu'il y a un concept d'un objet de base en PHP

843voto

Alex Martelli Points 330805

stdClass PHP générique de classe vide, un peu comme Object en Java ou en object en Python (Edit: mais pas réellement utilisé comme universel de la classe de base; merci @Ciaran pour le signaler).

Il est utile pour des objets anonymes, dynamique propriétés, etc.

Voir Propriétés Dynamiques en PHP et StdClass par exemple.

111voto

Mrinmoy Ghoshal Points 806

stdClass est une autre grande fonction PHP. Vous pouvez créer un anonyme de la classe PHP. Permet de vérifier un exemple.

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

maintenant, pensez que vous avez une autre classe qui va initialiser un objet de page et exécution de base.

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';
  }


}

maintenant, vous devez créer une belle Vue de l'objet avec un Objet de Page. Ici, pas besoin d'écrire un nouveau Modèle de Classe pour cela, vous pouvez simplement utiliser stdClass pour créer une Classe à la volée.

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

64voto

mdpatrick Points 625

A noter également, un objet stdClass peut être créé à partir de l'utilisation de la fonction json_decode ().

28voto

De même,

$myNewObj->setNewVar = 'newVal'; 

les rendements d'un objet stdClass - auto coulé

Je ne la trouve aujourd'hui, par la faute d'orthographe:

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

Cool!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X