2016-05-06 6 views
0

php currenlty learnigに新しく、オブジェクトを学習しようとしていますが、このコードに問題があります。問題は私のpostavi_html関数にあると言います。 私は、何かアドバイスをapreciate realylあなたは次の操作を行うことができ、文字列内の複雑なフィールドに含める場合は、事前にキャッチ可能な致命的なエラー:Formaクラスのオブジェクトを35行目の文字列に変換できませんでした。

class Forma 
{ 
    private $method; 
    private $action; 
    private $pun_html; 

    function __construct ($metoda,$akcija) 
    { 
     $this->method = $metoda; 
     $this->action=$akcija; 
    } 

    function gen_inputs($n) 
    { 
     $s=""; 
     for($i=0;$i<$n;$i++) 
     { 
      $s .="<input type='textfield' name='text$i' placeholder='text$i'/><br>"; 
     } 
     $s .="<input type='submit' name='submit' value='Posalji'/><br>"; 
     return $s; 
    } 
    function gen_links ($href,$text,$color) 
    { 
     $s="<a style='color:$color;' href='$href'>$text</a>"; 
     return $s; 
    } 
    function postavi_html($broj_inputa,$href_linka,$text_linka,$boja_linka) 
    { 
     $this->pun_html = "<form method='$this->method' action ='$this->action'>$this-> gen_inputs($broj_inputa) . $this->gen_links($href_linka,$text_linka,$boja_linka)</form>"; 

    } 
} 

$forma= new Forma ("GET","nesto.php"); 
echo $forma-> postavi_html (4,"GOOGLE","www.google.com","#564898"); 
+0

をそれが原因ではありませんあなたのエラーの正確に何が 'エコーされる'と期待していますか?あなたの 'postavi_html'関数は何も返しません。 –

答えて

2

をあなたに感謝します:より良い追加何が起こっているかを確認するために

$string = "normal and now {$a->getSomething()}" 

phpが$ thisを文字列に変換しようとしています。それは問題がpostavi_html機能での$ this - >方法、の$ this - >アクションを使用しているようだ

function postavi_html($broj_inputa,$href_linka,$text_linka,$boja_linka) 
{ 
    $this->pun_html = "<form method='{$this->method}' action ='{$this->action}'>{$this->gen_inputs($broj_inputa)} . {$this->gen_links($href_linka,$text_linka,$boja_linka)}</form>"; 
} 
+0

うわー、それは本当に速かった、皆さん、ありがとう、私はそれを非常にpreciate:D – Petar

0

:これは次のように関数がどのように見えるべきかです。以下のコード

function postavi_html($broj_inputa,$href_linka,$text_linka,$boja_linka) 
{ 
    $this->pun_html = "<form method='".$this->method."' action ='".$this->action."'>".$this->gen_inputs($broj_inputa) . $this->gen_links($href_linka,$text_linka,$boja_linka)."</form>"; 
    // If you want to return the form. 
    return $this->pun_html; 
} 

注変更 'の$ this - >メソッド' にしてみ

出力 ' "の$ this - >メソッドを。"':

<form method="GET" action="nesto.php"> 
    // inputs 
</form> 
+0

それは実際にあなたのアドバイスの両方が非常に有用だった、あなたはモニターを見て時間のカップルから救ってくれた皆さん、 – Petar