2010-05-27 6 views
10

Je me demande ce qu'on appelle ce genre de mission.Comment appelons-nous cela?

<?php 
class SimpleClass 
{ 
    public $var1; 
    public $var2; 
    public $var3; 

    public function SimpleClass() 
    { 
     $this->var1 = 'one'; 
     $this->var2 = 'two'; 
     $this->var3 = 'three'; 
    } 
} 

function test() 
{ 
    $objSc = new SimpleClass(); 
    $objSc->var4 = 'WTF?!'; # <-- what do we call this? 
    var_dump($objSc); 
} 

test(); 
?> 

Mieux avec des références ou des liens. Merci d'avance!

EDIT: Je suis à la recherche d'un terme technique pour cela ... eh bien, si nous avons.

Répondre

10

Je crois que c'est surchargé.

La surcharge de PHP fournit des moyens de "créer" dynamiquement des propriétés et des méthodes. Ces entités dynamiques sont traitées par des méthodes magiques que l'on peut établir dans une classe pour différents types d'actions.

Les méthodes de surcharge sont invoquées lors de l'interaction avec des propriétés ou des méthodes qui n'ont pas été déclarées ou qui ne sont pas visibles dans la portée actuelle.

PHP Référence manuelle here.

+2

L'appel pour définir la propriété 'var4' de l'objet' $ objSc' passe par la méthode magique __set() que vous pouvez définir vous-même pour faire d'autres choses. –

+0

+1 pour avoir cité le manuel. – Mizipzor

1

Vous définissez une propriété indépendante de l'objet $objSc.

2

Il est attribuer la chaîne WTF?! à une variable de portée publique de SimpleClass. Si vous var_dump, il montre la sortie correctement comme:

string(5) "WTF?!" 

Et comme @marcdev a souligné, il est connu comme surcharge.