引用时,私有变量返回空白,尽管它是在函数中设置的

时间:2013-01-12 23:44:07

标签: php

我有一个类来创建表单和一个从视图文件中获取表单名称表单操作和表单类型的函数。它工作正常并且符合预期,但是当我在另一个函数中调用这些变量来创建实际表单并将值添加到它们返回为空白时。

class Form {
     private $formname;
     private $formaction;
     private $formtype;

function Form($form_name, $actionfile, $formtype) {
            $this->formname = $form_name;
            $this->formaction = $actionfile;
            $this->formtype = $formtype;
        }

这是函数值存储在私有变量中的地方。

当我尝试在另一个函数中调用它们时,它们将返回为空白。

function formstart() {
$enc = 'enctype="multipart/form-data"';
$returnstring = '<form name="' . $this->formname . '" id="' . $this->formname . '" ' . $enc . ' method="' . $this->formtype . '"  action="' . $this->formaction . '">';
}

我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

您的类必须是命名空间才能使用该构造函数。相反,请使用方法__construct()

class Form {
     private $formname;
     private $formaction;
     private $formtype;

    function __construct($form_name, $actionfile, $formtype) {
        $this->formname = $form_name;
        $this->formaction = $actionfile;
        $this->formtype = $formtype;
    }
}

<强> Documentation

答案 1 :(得分:1)

你正在编写PHP 4.x OOP。

试试这个:

class Form {

  private $formname;
  private $formaction;
  private $formtype;

  public function __construct($form_name, $action_file, $form_type) {
      $this->formname = $form_name;
      $this->formaction = $action_file;
      $this->formtype = $form_type;
  }

  public function formstart() {
      $enc = 'enctype="multipart/form-data"';
      return '<form name="' . $this->formname . '" id="' . $this->formname . '" ' . $enc . ' method="' . $this->formtype . '"  action="' . $this->formaction . '">';
  }
}

$f = new Form('name', 'action', 'type');
echo $f->formstart();