2013-01-14 86 views
0

我有一系列的功能是假設的,最後創建一個表單。他們居住在一類,如下面的例子:PHP返回vs回聲

class ExampleForm{ 
    protected $_html = ''; 

    protected $_element; 

    public function __construct($element){ 
     $this->_element = $element; 

    protected function _open_form(){ 
     echo $this->_html .= '<form>'; 
    } 

    public function create_form(){ 
     $this->_open_form() 
     $this->_html .= $this->_element; 
     echo "some content"; 
     $this->_close_form() 
    } 

    protected function _close_form(){ 
     echo $this->_html .= '</form>' 
    } 

    public function __toString(){ 
     return $this->_html; 
} 

實例化爲:

$element = 'some element'; 
new ExampleForm($element); 

更全面的例子可以在Github on line 86 可以看到這些內容被呼應了,如何過它呼應了側面表格。

如果你想看到這個Then you'll deff wan't me.的真人演示在一天結束時,如果你檢查網頁上的表格,你會看到的形式開始標籤上面必須內的兩個隱藏字段表格標籤

現在,人們會認爲這將創建一個表單,例如:

<form> 
    element 
    some conent 
</form> 

如何過,我所得到的是:

some content 
<form> 
    element 
</form> 

這樣可以有一個人告訴我,根據我有什麼上面爲什麼我讓我的「一些內容」在表單標籤旁邊迴應,即使我已經回顯了開始表單標記?

即使我沒有回顯開放表格標籤,「部分內容」仍然出現在開放表格標籤的旁邊。

+0

現在添加代碼調用類和它的方法 – 2013-01-14 19:21:24

+0

請發佈所有你用的代碼來輸出這個。您需要向我們展示如何/在哪裏調用類中的函數。 – Kyle

+0

如何實例化你的類並調用這些函數?請提供代碼。 – 2013-01-14 19:27:47

回答

1

回報將直接返回變量沒有呼應它,那裏的回聲會響應它,當它被調用。所以如果你返回一個變量然後回顯一些東西。因此,在你的函數create_form()中,而不是echo "some content";只是做$this->_html .= "some content";

3

echo立即執行輸出,例如,

function bar() { 
    echo 'bar'; 
} 

bar(); 
echo 'foo'; 

給出barfoo作爲輸出。但是,如果你有

function bar() { 
    return 'bar'; 
} 

$baz = bar(); 
echo 'foo'; 
echo $baz; 

你會得到foobar

+0

所以我應該怎麼做我的情況,以確保「一些內容」停留在標籤內? – Adam