警告:缺少1个参数

时间:2010-12-23 16:30:08

标签: php constructor warnings

我知道为什么会收到此错误:

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");

5 个答案:

答案 0 :(得分:11)

实例化后,您执行了:$obj = new person();而不是$obj = new person("joe");

答案 1 :(得分:4)

$persons_name = ""

在参数中设置如下。但这不是解决方案。您可以删除构造,创建新实例,然后设置名称。如果你的某种方式不起作用。

答案 2 :(得分:2)

您正在调用构造函数而不传入参数。也许你正在做类似的事情 $p = new person();代替$p = new person("theirName");

答案 3 :(得分:0)

似乎: 如果类名与函数名相同,则会给出此警告。 如果您将该函数命名为与类名不同,那么似乎没问题。 只有在不在类实例化时调用函数时才需要提供参数

答案 4 :(得分:0)

试试此代码

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

在构造方法中初始化NULL。