如果我将一个参数传递给我的构造函数,我是否想在每次创建对象Instance时传递参数?

时间:2016-05-25 11:25:58

标签: php oop

我的班级文件如下所示

<?php
class person { 
var $name; 

function __construct($persons_name) {   
    $this->name = $persons_name;    
}

function set_name($new_name) {
     $this->name = $new_name; 
} 

function get_name() { 
    return $this->name; 
} 
}

在我的构造中,我传递了一个值。 当我想创建一个人类对象的实例时,在其他地方,如下所示

$hasee= new person(); 

$muja = new person("Mujahidh Haseem");

我想严格传递一个值吗? 我是第一次收到这些通知。

  

警告:缺少person :: __ construct()的参数1,在第3行的D:\ xampp \ htdocs \ oop \ index.php中调用,并在D:\ xampp \ htdocs \ oop \ class_lib.php中定义5

     

注意:未定义的变量:people_name in   第6行的D:\ xampp \ htdocs \ oop \ class_lib.php

2 个答案:

答案 0 :(得分:2)

您可以设置参数的默认值,当省略参数时将使用该参数

Before the upgrade : 
    MacBook Pro (15inch, Late 2011)
    Processor 2.4GHz Intel Core i7
    Memory 4GB 1333MHz DDR3
    Graphics Intel HD Graphics 3000 512MB
    HDD

After the upgrade : 
    MacBook Pro (15inch, Late 2011)
    Processor 2.4GHz Intel Core i7
    Memory 8GB 1333MHz DDR3
    Graphics Intel HD Graphics 3000 512MB
    480 GB SSD

答案 1 :(得分:2)

如果要使构造函数参数可选,请提供默认值。

function __construct($persons_name = null) {
    $this->name = $persons_name;
}

请参阅Default argument values上的PHP文档。

如果您不想将参数设为可选参数,则每次创建实例时都必须提供参数,否则您将收到这些错误。