我知道为什么会收到此错误:
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");
答案 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。