现在有一个类 比如说 
    class SELECT{
 function  __construct($others){
    echo '<select '.$others.'>';
}
 public function OPTIONS($others,$content){
echo '<option '.$others.'>'.$content.'</option>';
}
 function __destruct(){
    echo '</select>';
}
},它的作用是生成一个完整select控件,因为option个数不定,个人是通过循环调用OPTIONS方法来实现。
现在还有一个类
class HTML{
public function OUTPUT_OPTIONS(){}
}
我想通过调用HTML的 OUTPUT_OPTIONS方法实例化SELECT,从而生成一个完整的OPTION个数不定select控件,该怎么做?

解决方案 »

  1.   

    class SELECT
    {
    public function __construct($name)
    {
    echo '<select name="', $name, '">';
    } public function OPTIONS($options)
    {
    foreach ($options as $value => $label)
    {
    echo '<option value="', $value, '">';
    echo $label, '</option>';
    }
    } public function __destruct()
    {
    echo '</select>';
    }
    }class HTML
    {
    public function OUTPUT_OPTIONS($name, $options)
    {
    $select = new SELECT($name);
    $select->OPTIONS($options);
    }
    }$html = new HTML;
    $html->OUTPUT_OPTIONS('country', array('china' => '中国', 'america' => '美国'));
    //<select name="country"><option value="china">中国</option><option value="america">美国</option></select>
      

  2.   

    class SELECT
    {
        public function __construct($name)
        {
            echo '<select name="', $name, '">';
        }    public function OPTIONS($options)
        {
            foreach ($options as $value => $label)
            {
                echo '<option value="', $value, '">';
                echo $label, '</option>';
            }
        }    public function __destruct()
        {
            echo '</select>';
        }
    }class HTML
    {
        public function OUTPUT_OPTIONS($name, $options)
        {
            $select = new SELECT($name);
            $select->OPTIONS($options);
        }
    }$html = new HTML;
    $html->OUTPUT_OPTIONS('country', array('china' => '中国', 'america' => '美国'));
    //<select name="country"><option value="china">中国</option><option value="america">美国</option></select>
      

  3.   

    不错,但是CLASS里全都用PUBLIC感觉有点怪怪的。