为什么在方法greet()
中我必须在函数声明中不添加参数$firstname
?
错:
public function greet($firstname){
echo "Bonjour, mon nom est ". $this->firstname . "Ravi de vous rencontrer ! :-)";
}
正确:
class Person {
public $isAlive = true;
public $firstname;
public function __construct($firstname,$lastname,$age){
$this->firstname = $firstname;
}
public function greet(){
echo "Bonjour, mon nom est ". $this->firstname . "Ravi de vous rencontrer ! :-)";
}
}
答案 0 :(得分:0)
如果你没有申报,
public $firstname;
在类中,然后它变成一个局部变量,不能作为类变量访问。
答案 1 :(得分:0)
如果将此参数作为参数添加到greet()
函数,则只返回传递给greet()
的值。您拥有它的方式是由类构造函数将其设置为数据成员,这可能是您想要的,因为信息与类实例相关,并且您希望它保持存储在对greet()的调用之间。
希望这能解释它!
答案 2 :(得分:0)
这是因为如果你不需要,你不必传递任何$值。这一切都取决于你的功能声明表。
这里你必须通过$ param。
public function greet($param){
}
在这里你不能:
public function greet(){
}
你可以,但你不必:
public function gree($param = null){
}
在类中声明的任何方法都可以使用$ this访问此处的属性,如:
class newClass {
public $param;
public function sayName(){
return $this->param;
}
}