为什么东西会在标签之外回显?

时间:2012-09-28 17:33:48

标签: php html forms

所以我有一个方法可以根据你传入的属性数组创建一个文本元素,除了value属性之外它都有效,但问题如下:

如果有一些价值,无论是功能,文字还是你有什么" echo' d" out,然后值显示在框的旁边,如果返回值,那么我们得到标记内的值。

function textarea(array $attributes){

   if(isset($attributes['name'])){
       $this->name = 'name="'.$attributes['name'].'"';
   }

   if(isset($attributes['id'])){
       $this->id = 'id="'.$attributes['id'].'"';
   }

   if(isset($attributes['class'])){
       $this->class = 'class="'.$attributes['class'].'"';
   }else{
       $this->class = 'class="aisisTextElement"';
   }

   if(isset($attributes['rows'])){
       $this->rows = 'rows="'.$attributes['rows'].'"';
   }

   if(isset($attributes['cols'])){
       $this->cols = 'cols="'.$attributes['cols'].'"';
   }

   if(isset($attributes['value'])){
       $this->value = $attributes['value'];
   }

   if(isset($attributes['style'])){
       $this->style = 'style="'.$attributes['style'].'"';
   }

   $build_aisis_element = '<textarea ' 
                          .$this->id 
                          .$this->class 
                          .$this->name 
                          .$this->rows  
                          .$this->cols 
                          .$this->style
                          .'>'.$this->value . '</textarea>';                
   echo $build_aisis_element;
} 

例如:

如果此函数作为值传递:

function echo_me(){
    echo "hello"
}

我的HTML看起来像:

hello
<textarea></textarea>

怎么样

function return_me(){
    return "hello"
}

我的HTML是:

<textarea>hello</textarea>

为什么会这样?

1 个答案:

答案 0 :(得分:5)

echo命令将字符串输出到文档,而不是调用函数。

返回获取字符串并将其传递回调用函数以执行它将会执行的操作。