-1

したがって、渡す属性の配列に基づいてテキスト要素を作成するメソッドがあります。値属性を除いてすべて機能します。本質的に問題は次のとおりです。

関数、テキスト、または「エコー」された値である場合、値はボックスの外側に表示されますが、値が返された場合はタグ内の値を取得します。

コード

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>

どうしてこれなの?

4

1 に答える 1

5

echo コマンドは、呼び出し元の関数ではなく、ドキュメントに文字列を出力します。

Return は文字列を受け取り、それを呼び出し元の関数に戻して処理を行います。

于 2012-09-28T17:36:22.087 に答える