我这里有一个超级简单的脚本,但是我一直在变量未定义,作为警告,提示我如何让这个脚本无误地运行并做同样的事情。
class person{
public $integer=4;
public $name;
public function __construct($name){
$this->name = $name;
}
public function pre(){
return "pre message";
}
public function after($name){
return "post message".$name;
}
};
$person1 = new person($name="jason");
$person2 = new person($name="bourne");
echo $person1->pre();
echo $person2->after();
答案 0 :(得分:3)
您将对象设置为$person1
和$person2
,但将其称为$dog1
和$dog2
答案 1 :(得分:0)
我认为你想构建你刚刚传递所需参数的新对象,而不是分配:
$person1 = new person("jason");
$person2 = new person("bourne");
答案 2 :(得分:0)
您没有将任何参数传递给after
中的$dog2->after();
。因此,$name
在该方法中未定义。如果要使用类属性$name
,请在那里使用$this->name
。
此外,正如@MichaelKing指出的那样,您指的是$dog1
和$dog2
,但将变量设置为$person1
和$person2
。
答案 3 :(得分:0)
您将对象设置为$ person1和$ person2,这意味着 你必须像使用它一样 echo $ person1-> pre(); echo $ person2-> after();
答案 4 :(得分:0)
您可以为person
和$person1
创建班级$person2
的对象。但是您使用$dog1
和$dog2
来调用函数,这些函数未声明或定义。