基本的OOP PHP表单类

时间:2013-07-27 12:04:28

标签: php forms oop

我正在尝试使用OOP编程我正在尝试创建一个表单类。我无法打印复选框,如何查看事情发生的地方?

  require_once('form.php');
  $gender = new Checkbox('Please select your gender','gender',array('male','female'));
  echo $gender->show_checkbox();

带课程的文件:

class Inputfield{

  public $id;
  public $options_array;
  public $question;
  public $type;
  function __construct($newquestion,$newid,$newoptions_array){
    $this->question=$newquestion;
    $this->id=$newid;
    $this->type="txt";
    $this->options_array=$newoptions_array;
  }
  public function show_options($options_arr,$type,$id,$classes){
    $output="";
    foreach($options_arr as $option){
        $output.="<label for=\"".$option."\"></label><input name=\"".$option."\" type=\"".$type."\" id=\"".$id."\" class=\"".$classes."\">";
    }
    return $output;
  }
  public function show_question(){
    $output="<h3 class='question'>".$this->vraag."</h3>";
    return $output;
  }
}
class Checkbox extends Inputfield{
  function __construct($newquestion,$newid,$newoptions_array){
    $this->question=$newquestion;
    $this->id=$newid;
    $this->type="checkbox";
    $this->options_array=$newoptions_array;
  }

  public function show_checkbox(){
    $output=show_question();
    $output.=show_options($this->options_array,'checkbox',$this->id,'class');
    return $output;
  }
}

2 个答案:

答案 0 :(得分:5)

  1. 您使用$this调用实例方法:$this->show_options();
  2. 您不需要复制粘贴整个构造函数,只要它与父类中的构造函数相同即可
    1. 如果它部分匹配,您可以将其称为parent::__construct(...),然后定义自定义$this->type="checkbox";
    2. 您无法在运行时定义它,但将其指定为属性默认值。

答案 1 :(得分:2)

您应该在对象上下文中使用$this。例如。在show_checkbox方法中,写一下:

$output = $this->show_question();
$output .= $this->show_options(...);