• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zagnieżdzanie obiektów.

Object Storage Arubacloud
+1 głos
480 wizyt
pytanie zadane 23 lutego 2016 w PHP przez FocuSsmok Początkujący (450 p.)

Witam. Mam pewien problem i mam nadzieję że pomożecie. Chodzi o to że mam klasę która posiada konstruktor z jednym argumentem do którego przypisywany jest string, ten string jest umieszczany w zmiennej prywatnej. Zawartość zmiennej jest wyświetlana inną funkcją. Ale przejdę do problemu, chodzi o to że w klasie powinna być funkcja która będzie dodawać inne obiekt tzn. że powinna dla różnych napisów przypuśćmy że utworzyliśmy obiekt z napisem table i dla niego chcemy utworzyć kilka znaczników tr które będzie znajdować się między tagami table i dla zmiennej 

$table= new klasa ('table');
for($i=0; $i>10; $i++)
{
$table->dodaj_obiekt(new klasa ('td'))
}

Chodzi mi tu dokładnie o to, że nie wiem jak utworzyć funkcję w klasie. Jaki argument, jakie instrukcje żeby to zagnieżdżało obiekty dla innego obiektu. Możecie pomóc i wytłumaczyć ?

2 odpowiedzi

+2 głosów
odpowiedź 24 lutego 2016 przez efiku Szeryf (75,160 p.)
edycja 24 lutego 2016 przez efiku

Ja osobiście popatrzyłbym na to jak zbudowana jest klasa: http://php.net/manual/en/book.dom.php

Większość rozszerza klasę http://php.net/manual/en/class.domnode.php zobacz jak jest zbudowana oraz na metody budujące:  createElement() 

Ale jeżeli musisz sobie takie coś napisać na zadanie to zacznij od jakiejś klasy bazowej o nazwie np. "Node"

Podpowiedź: 



public DOMNode DOMNode::appendChild ( DOMNode $newnode )

This function appends a child to an existing list of children or creates a new list of children


 

Nie pokazałeś całego kodu. Wklej go na pastebin 

+1 głos
odpowiedź 24 lutego 2016 przez Nobas Użytkownik (560 p.)

Nie wiem do czego Ci taka funkcjonalność potrzebna, jak do testowania obiektowości w php, to ok, jak do generowania kodu html, to moim zdaniem przerost formy nad treścią. Co do pytania, to nie wiadomo jak później chcesz te obiekty wykorzystywać, możesz je przechowywać w formie tablicy lub wykorzystać jakąś klasę z SPL (np. stos lub kolejkę)

Przykład z wykorzystaniem tablicy:

class Tag {
	protected $name = '', $attributes = '', $closed = true, $children = array();

	function __construct($name, $closed = true) {
		$this->name = $name;
		$this->closed = $closed;
	}

	function add($item) {
		$this->children[] = $item;
		return $this;
	}

	function addAttributes($item) {
		$this->attributes .= ' ' . $item;
		return $this;
	}

	function render() {
		$returns = '<' . $this->name . $this->attributes . '>';
		foreach ($this->children as $v) {
			$returns .= ($v instanceof Tag) ? $v->render() : $v;
		}
		if ($this->closed) {
			$returns .= '</' . $this->name . '>';
		}
		return $returns;
	}

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

}

Wykorzystanie: przykład 1, przykład 2

Podobne pytania

0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 28 grudnia 2022 w PHP przez Filip384 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 319 wizyt
pytanie zadane 11 stycznia 2021 w Java przez Lulex Użytkownik (820 p.)
0 głosów
2 odpowiedzi 377 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,965 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...