警告:缺少1个参数

警告:缺少1个参数

问题描述:

任何想法,为什么我得到这个错误:警告:缺少1个参数

Warning: Missing argument 1 for person::__construct(), called in /home/fishbein/public_html/dev/OOP/index.php on line 5 and defined in /home/fishbein/public_html/dev/OOP/class_lib.php on line 6 

Warning: Missing argument 1 for person::__construct(), called in /home/fishbein/public_html/dev/OOP/index.php on line 6 and defined in /home/fishbein/public_html/dev/OOP/class_lib.php on line 6 

有了这个代码:

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

    } 
?> 

我也在我的索引文件中使用这样的:

$tyler = new person("Tyler"); 
+3

您需要在index.php上发布第5行和第6行。这就是错误所在。 – Chris 2010-12-23 16:38:53

实例化时你做了。但这不是解决方案。您可以删除构造,创建新实例,然后设置名称。如果你的方式不起作用。

+1

但是,我正在使用$ tyler = new person(“Tyler”); – Phil 2010-12-23 16:36:33

您正在调用构造函数而不传入参数。在争论的$obj = new person("joe");$obj = new person();代替

+0

@Phil:在Brian的回答结尾处:`$ p = new Person(“theirName”);` – 2010-12-23 16:33:54

+0

我一直在这样做:$ tyler = new person(“Tyler”); – Phil 2010-12-23 16:34:12

$persons_name = "" 

设置这样的:也许你正在做的事情一样 $p = new person();,而不是$p = new person("theirName");

看起来: 如果类名与功能名称相同,则发出此警告。 如果您将该函数的名称与类名称不同,那么它看起来没问题。 你只需要提供参数调用函数,他不是在类实例化

时,试试这个代码构造方法中

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

初始化NULL。