Question

Dans ma quête pour en savoir plus sur la programmation orientée objet en PHP. J'ai rencontré la fonction constructeur à quelques reprises et je ne peux plus l'ignorer. Dans ma compréhension, le constructeur est appelé au moment où je crée un objet, est-ce correct?

Mais pourquoi aurais-je besoin de créer ce constructeur si je peux utiliser " normal " fonctions ou méthodes comme on les appelle?

acclamations, Keith

Était-ce utile?

La solution

Oui, le constructeur est appelé lors de la création de l'objet.

Voici un petit exemple de l’utilité d’un constructeur

class Bar
{
    // The variable we will be using within our class
    var $val;

    // This function is called when someone does $foo = new Bar();
    // But this constructor has also an $var within its definition,
    // So you have to do $foo = new Bar("some data")
    function __construct($var)
    {
        // Assign's the $var from the constructor to the $val variable 
        // we defined above
        $this->val = $var
    }
}

$foo = new Bar("baz");

echo $foo->val // baz

// You can also do this to see everything defined within the class
print_r($foo);

UPDATE: Une question a également demandé pourquoi cela devrait être utilisé, un exemple concret est une classe de base de données, dans laquelle vous appelez l'objet avec le nom d'utilisateur, le mot de passe et la table de connexion, auxquels le constructeur se connecterait. Ensuite, vous avez les fonctions pour faire tout le travail au sein de cette base de données.

Autres conseils

Le constructeur vous permet de vous assurer que l'objet est placé dans un état particulier avant de tenter de l'utiliser. Par exemple, si votre objet a certaines propriétés requises pour son utilisation, vous pouvez les initialiser dans le constructeur. De plus, les constructeurs permettent d’initialiser les objets de manière efficace.

L'idée du constructeur est de préparer le groupe initial de données pour l'objet, afin qu'il puisse se comporter comme prévu.

Appeler simplement une méthode n'est pas une transaction, car vous pouvez oublier de le faire. Vous ne pouvez pas spécifier cela comme "obligatoire avant le travail". dans la syntaxe - vous obtiendrez donc "cassé" objet.

Les constructeurs sont bons pour une variété de choses. Ils initialisent des variables dans votre classe. Supposons que vous créez une classe BankAccount. $ b = nouveau BankAccount (60); a un constructeur qui donne une valeur initiale au compte bancaire. Ils définissent des variables dans la classe ou peuvent également initialiser d’autres classes (héritage).

Le constructeur est destiné à l'initialisation lors de la création d'un objet.

Vous ne voudriez pas appeler une méthode arbitraire sur un objet nouvellement créé car cela irait à l'encontre de l'idée d'encapsulation et nécessiterait que le code utilisant cet objet ait une connaissance inhérente de son fonctionnement interne (et nécessite plus d'effort).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top