2016-05-06 4 views
0

Я новичок в php currenlty learnig, я пытаюсь изучить объекты, и у меня проблема с этим кодом. В нем говорится, что проблема связана с моей функцией postavi_html. я бы realyl apreciate какой-нибудь совет, заранее спасибоЛовкая фатальная ошибка: объект класса 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

Это не причина вашей ошибки, но что именно вы ожидаете от 'echo'ed? Ваша функция 'postavi_html' ничего не возвращает. –

ответ

2

Если вы хотите включить сложные поля в строке вы можете сделать следующее:

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

, чтобы лучше видеть, что происходит добавить следующие функции в ваш класс:

function __toString() { return 'myObject'; } 

php пытается преобразовать $ 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

Вау, это было очень быстро, спасибо вам, ребята, я его очень ценил: D – Petar

0

Кажется, проблема с использованием $ this-> метода, $ this-> действия в функции postavi_html. Попробуйте приведенный ниже код

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-> метод' для

Output ' "$ this-> метод.."':

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

это работает, актуально оба ваших совета были очень полезны, спасибо вам, ребята, вы спасли от часового часа, глядя на монитор: D – Petar

Смежные вопросы

 Смежные вопросы