Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP / Symfony: minne muuttuja(t) katoaa?

Multibyte [30.12.2015 21:38:43]

#

Moi

Käytän Symfonyn DOMCrawler oliota, kun haen HTML dokumentista tiettyjen elementtien arvoja.

Ongelmana on, etten saa tallennettua löytynyttä arvoa mihinkään muuttujaan. Alla pätkä koodia.

$taulukko = array();
// Silmukassa pyöritetään crawleria
$crawler->filter($xpath)->each(function ($node) {
				// Sulkeuman sisällä voin tulostaa $node->nodeValue, ja jolla on han oikea arvo
				// En voi kuitenkaan tallentaa ko. arvoa muihin muuttujiin: miksi?
				// En voi esim. tallentaa ko. arvoa em. taulukko muuttujaan.
			});

Haluaisin siis saada arvon talteen myöhempää käsittelyä varten enkä ymmärrä, että mihin se katoaa.
Jos yritän aksessoida muita muuttujia esim. global muuttujia tuolla sulkeuman sisällä, niin ei sekään auta.

Metabolix [30.12.2015 22:06:53]

#

Ympäröivät muuttujat eivät näy nimettömässä funktiossa. Eivät ne mihinkään katoa, vaan näin homma toimii. Nimettömän funktion ympärillä olevia muuttujia voi kuitenkin sitoa funktioon use-sanalla.

$taulukko = [];
$plaa->each(function ($node) use (&$taulukko) {
	$taulukko[] = $node;
});

Voisit lukea alkeet nimettömistä funktioista.

Jos haluat käyttää globaaleja muuttujia, voit käyttää global-sanaa niiden esittelyyn funktion sisällä tai käyttää muuttujia $GLOBALS-taulukon kautta, mutta globaalit ovat yleensä huono idea.

Multibyte [30.12.2015 23:15:08]

#

Kiitos, tämä ohjasi oikeaan suuntaan. Lisäsin usen avulla muutaman muunkin muuttujan ja nyt pelaa.

Täytyy joskus yrittää löytää aikaa alkeiden opettelulle.
Tehään kuitenkin nyt ensin ja opetellaan vasta myöhemmin :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta