PHP类定义方法

时间:2015-07-30 18:57:23

标签: php class methods

为什么在方法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 ! :-)";   
    }                
    }

3 个答案:

答案 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;
}

}