构造函数不使用参数

时间:2017-10-23 17:53:04

标签: php

以下是代码:

<?php
class Person {
    public $name;
    public $surname;
    public function __construct($name,$surname) {
        $this->name=$name;
        $this->surname=$surname;
    }
}


$person = new Person();
$person->name='Christian';
$person->surname='Sciberras';
?>

我不知道为什么代码没有运行而是显示:

  

(致命错误:未捕获的ArgumentCountError:参数太少   函数Person :: __ construct(),0传入   第15行的C:\ xampp \ htdocs \ oop \ index.php和预期的2   C:\ xampp \ htdocs \ oop \ index.php:8堆栈跟踪:#0   C:\ xampp \ htdocs \ oop \ index.php(15):Person-&gt; __ construct()#1 {main}   在第8行的C:\ xampp \ htdocs \ oop \ index.php中抛出

1 个答案:

答案 0 :(得分:2)

你的传递方式如下

$person = new Person('Christian','Sciberras');

因为你有

public function __construct($name,$surname){
                           /*
                              ^      ^  
                              |      |
                            arg1     arg2

                          */
}

所以它希望你传递2个参数,这就是为什么你得到以下信息

  

函数Person :: __ construct(),

的参数太少