PHP类没有回复返回值

0 php oop

class hello {

  var $fname;
  var $lname;

  function attrib() {
    $this->fname = "sarmen";
    $this->lname = "dijango";
  }

  function say() {
    $name = $this->fname.", ".$this->lname;
    return $name;
  }
}
Run Code Online (Sandbox Code Playgroud)

当我在页面上包含类并输入类似的内容时,这是我的示例类

$d = new hello();
$d->say()
Run Code Online (Sandbox Code Playgroud)

什么都没发生.我究竟做错了什么?

Pao*_*ino 7

您将该方法attrib视为构造函数,但您需要将其命名为其__construct行为.*否则,您需要这样做:

$myobject = new hello(); // create new object
$myobject->attrib(); // set the vars
print $myobject->say();
Run Code Online (Sandbox Code Playgroud)

然而,更常见的是看到这样的事情:

$myobject = new hello('my first name', 'my last name');
print $myobject->say();
Run Code Online (Sandbox Code Playgroud)

然后代替attrib方法你会得到这样的东西:

function __construct($fname, $lname) {
   $this->fname = $fname;
   $this->lname = $lname;
}
Run Code Online (Sandbox Code Playgroud)

* 除非您使用PHP4,否则您需要将构造函数命名为类名.