web-dev-qa-db-ja.com

PHPのコンストラクタ

PHPのコンストラクターメソッドは、クラスで宣言されたパラメーターを受け取りますか?

複数のサイトや書籍、およびPHPのドキュメントで、関数関数__construct()がパラメーターを受け取らないことを確認しました。

11
Blueberry

PHPコンストラクタは、他の関数と同様にパラメータを取ることができます。たとえば、__construct()関数にパラメータを追加する必要はありません。

例1:パラメーターなし

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

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

例2:パラメータあり

<?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はパラメータを取ることができます。 公式ドキュメント によると、このメソッドの署名は次のとおりです。

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

だからそれはパラメーターを取ることができるようです!

それの使い方:

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

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