2012-12-02 56 views
1

我的代码战斗:

$worker = new Worker(); // :| 
$worker->addWorker; 
//testing     
//testing 
// $_SESSION['worker']->addWorker(); 
echo $_POST['name']; 
echo $worker->name; 

应该最后两行应该表现出相同的值。类中的赋值方法如下所示:

public function addWorker() 
{ 
     $this->name = $_POST['name']; 
     $this->surname = $_POST['surname']; 
     $this->dob = $_POST['dob']; 
     $this->skills = $_POST['skills']; 
     $this->postcode = $_POST['postcode']; 
     $this->street = $_POST['street']; 
     $this->email = $_POST['email']; 
     $this->tel = $_POST['tel']; 
     $this->erefnumber = $_POST['erefnumber']; 
} 

我已经声明了类Worker属性。问题是我没有任何错误,$ worker-> name只是给出了一些东西。 echo $ _POST ['name']工作正常。

+1

为什么不打电话给addWorker作为函数? –

+0

你可能想考虑提炼你的Worker api。 “addWorker”意味着你将一名工人添加到另一名工人......这有意义吗?也许更好的名字就像“setFromArray”。然后你可以传递$ _POST数组给它。 –

回答

4

你的代码几乎是好的,但你这样做:

$worker->addWorker; 

,而应该是:

$worker->addWorker(); 

此外,为了提高代码的可读性,我会考虑改变addWorker()要求数组参数:

public function addWorker(array $postArray) { 
    $this->name = $postArray['name']; 
    .... 

and pass $_POST while invoking:

$worker->addWorker($_POST);