PHP 中的构造函数

2022-08-30 23:21:58

PHP 中的构造函数方法是否采用类中声明的参数?

我在多个网站和书籍以及PHP文档中看到函数__construct()不采用任何参数。


答案 1

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
?>

答案 2

__construct可以取参数。根据官方文档,此方法签名为:

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

所以它似乎可以采取参数!

如何使用它:

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

$a = new MyClass('Hello, World!'); // Will print "Hello, World!"

推荐