Diskuze: Úkol v PHP
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
class A {
private $href;
private $title;
public function setHref($href) {
$this->href = $href;
}
public function getHref() {
return $this->href;
}
public function setTitle($title) {
$this->title = $title;
}
public function getTitle() {
return $this->title;
}
public function render() {
return '<a href="' . $this->href . '">' . $this->title . '</a>';
}
}
Ty jo, tak tohle by mne fakt nenapadlo Konkretne ta posledni veta mela byt
jako prvni.
Ja bych pouzil misto set, get toto
class A {
private $vars;
public function href($href=null) {
if ($href==null) return $this->vars['href'];
$this->vars['href'] = $href;
}
public function title($title=null) {
if ($title==null) return $this->vars['title'];
$this->vars['title'] = $title;
}
public function render() {
return '<a href="' . $this->href() . '">' . $this->title() . '</a>';
}
}
a nebo
class A {
private $vars;
public function var($name='', $value=null) {
if ($value==null) return isset($this->vars[$name]) ? $this->vars[$name] : '';
$this->vars[$name] = $value!=null ? $value : '';
}
public function render() {
return '<a href="' . $this->var('href') . '">' . $this->var('title') . '</a>';
}
}
Respektive bych si udelal univerzalni class pro tagy (z toho posledniho
prikladu) a na ni definoval jakykoliv tag
Jasně, pokud bude dynamicky skládat celý formulář, tak to určitě bude chtít minimálně interface.
V prvé řadě chci říct, že nejsem tak pokročilý jako vy.
Té tvé první verzi rozumím asi tak ze všech nejvíce, přesto ale
málo.
Snažil jsem se přes index.php použít tu třídu A cos vytvořil a vyechovat
nějaký výstup z té funkce render, ale nějak to asi nechápu. Mohl bys mi
prosím poslat nějakou ukázku jak z té funce dostat výstup? Nemusí to být
ani ve formuláři.
Díky.
Díky i ostatním za příspěvky, i když jsem jim moc neporozumněl.
class A {
private $vars;
public function href($href=null) {
if ($href==null) return $this->vars['href'];
$this->vars['href'] = $href;
}
public function title($title=null) {
if ($title==null) return $this->vars['title'];
$this->vars['title'] = $title;
}
public function render() {
return '<a href="' . $this->href() . '">' . $this->title() . '</a>';
}
}
$html = new A();
$html->href('https://google.com');
$html->title('Zajímavý odkaz');
$title = $html->title();
$href = $html->href();
$render = $html->render();
// $title vrátí "Zajímavý odkaz"
// $href vrátí "https://google.com"
// $render vrátí <a href="https://google.com">Zajímavý odkaz</a>
Funguje to tak, že ty funkce (href, title), jsou univerzální a slouží jak k zápisu tak i výpisu, přímo v té funkci je přednastavený parametr takže když ho nevyplníme, tak to funguje jako výpis a když ho vyplníme tak je to zápis, v té funkci je podmínka která zjistí jestli chceš parametr vypsat nebo ne (jestli je argument = null).
Zobrazeno 8 zpráv z 8.