Php 无法将$\u POST['variable']分配给对象属性

Php 无法将$\u POST['variable']分配给对象属性,php,class,object,post,oop,Php,Class,Object,Post,Oop,我在与代码作斗争: $worker = new Worker(); // :| $worker->addWorker; //testing //testing // $_SESSION['worker']->addWorker(); echo $_POST['name']; echo $worker->name; 最后两行应该显示相同的值。类中的assign方法如下所示: public function addWorker() {

我在与代码作斗争:

$worker = new Worker(); // :|
$worker->addWorker;
//testing                   
//testing
// $_SESSION['worker']->addWorker();
echo $_POST['name'];
echo $worker->name;
最后两行应该显示相同的值。类中的assign方法如下所示:

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->name只给出了任何东西。echo$\u POST['name']工作正常。

您的代码几乎正常,但您做到了:

$worker->addWorker;
虽然它应该是:

$worker->addWorker();

此外,为了提高代码的可读性,我会考虑更改AdxWork以要求数组参数:

public function addWorker( array $postArray ) {
    $this->name = $postArray['name'];
    ....
并在调用时传递$\u POST:

$worker->addWorker( $_POST );

您的代码几乎没有问题,但您做到了:

$worker->addWorker;
虽然它应该是:

$worker->addWorker();

此外,为了提高代码的可读性,我会考虑更改AdxWork以要求数组参数:

public function addWorker( array $postArray ) {
    $this->name = $postArray['name'];
    ....
并在调用时传递$\u POST:

$worker->addWorker( $_POST );

为什么不调用AdfWork作为函数?您可能需要考虑改进您的工作API。addWorker意味着您正在将单个worker添加到另一个worker…这有意义吗?也许更好的名称应该是setFromArray之类的名称。然后,您可以将$xPARS数组传递给它。为什么不调用AddiWord作为函数?您可能需要考虑改进您的工作API。addWorker意味着您正在将单个worker添加到另一个worker…这有意义吗?也许更好的名称应该是setFromArray之类的名称。然后可以将$\u POST数组传递给它。