我正在学习php,我为创建表单创建了这个简单的类。
class form {
private $pole= array();
function addText($name, $label){
$pole[] = new input($name, 'text', $name, $label);
}
function create(){
foreach ($this->pole as $polozka) {
$polozka->addInput();
}
}
}
class input{
private $name;
private $type;
private $id;
private $label;
/*
* $name, $type, $id, $label
*/
function __construct($name, $type, $id, $label){
$this->name=$name;
$this->type=$type;
$this->id=$id;
$this->label=$label;
}
function addInput(){
echo "<label for='".$this->name.": '>".$this->label."<input type='".$this->type."' name='".$this->name."' id='".$this->id."'/>";
}
}
然后我就这样称呼它
<?php include "form.php";
$form = new form();
$form->addText('jmeno', 'Jméno');
$form->addText('prijmeni', 'Příjmení');
$form->create();
?>
但它绝对没有。 :(你不知道它有什么不对吗?
我认为问题可能在于调用数组中的对象或将它们保存到数组中。我曾经像java那样做。但是,它是一个但不同的。
答案 0 :(得分:2)
function addText($name, $label){
$this->pole[] = new input($name, 'text', $name, $label);
}
不
function addText($name, $label){
$pole[] = new input($name, 'text', $name, $label);
}
您可能还应该为类中的方法添加public
的可见性...虽然它们将默认为公共,除非另有定义,明确定义的可见性确实使其立即显而易见
答案 1 :(得分:1)
您不是指您的班级成员:
function addText($name, $label){
$pole[] = new input($name, 'text', $name, $label);
}
应该是:
function addText($name, $label){
$this->pole[] = new input($name, 'text', $name, $label);
}