0

フォームを作成するクラスと、ビュー ファイルからフォーム名フォーム アクションとフォーム タイプを取得する関数があります。期待どおりに正常に動作しますが、別の関数でこれらの変数を呼び出して実際のフォームを作成し、値を追加すると、空白として返されます。

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 . '">';
}

何か不足していますか?

4

2 に答える 2

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

ドキュメンテーション

于 2013-01-12T23:47:33.347 に答える
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();
于 2013-01-12T23:48:55.907 に答える