web-dev-qa-db-fra.com

Constructeur dans PHP

Une méthode constructeur en PHP prend-elle ou non les paramètres déclarés dans la classe?

J'ai vu sur plusieurs sites et livres et dans la documentation PHP que la fonction fonction __construct () ne prend aucun paramètre.

11
Blueberry

Le constructeur PHP peut prendre des paramètres comme les autres fonctions. Il n'est pas nécessaire d'ajouter des paramètres à la fonction __construct(), par exemple:

Exemple 1: sans paramètres

<?php
class example {
    public $var;
    function __construct() {
        $this->var = "My example.";
    }
}

$example = new example;
echo $example->var; // Prints: My example.
?>

Exemple 2: avec paramètres

<?php
class example {
    public $var;
    function __construct($param) {
        $this->var = $param;
    }
}

$example = new example("Custom parameter");
echo $example->var; // Prints: Custom parameter
?>
9
Variable

__construct peut prendre des paramètres. Selon la documentation officielle , cette signature de méthode est:

void __construct ([ mixed $args = "" [, $... ]] )

Il semble donc que cela puisse prendre des paramètres!

Comment l'utiliser:

class MyClass {
    public function __construct($a) {
        echo $a;
    }
}

$a = new MyClass('hello world'); // Will print "hello world"
3
rap-2-h