Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP, muuttujan prefix

Sivun loppuun

Juhko [05.12.2009 12:24:00]

#

Olisikohan mahdollista saada kaikki $if_ -alkuiset muuttujat taulukkoon? Foorumisoftani käyttöliittymässä on sellaisia jo parikymmentä.

vehkis91 [05.12.2009 12:30:35]

#

Senkus laitat ne taulukkoon?

Juhko [05.12.2009 12:32:08]

#

Ei, vaan tehdä ohjelman suorituksen aikana $if_ -alkuisista taulukko.

Triton [05.12.2009 12:38:19]

#

Mikä hyöty siitä oikein on? Etkö vaan voisi kerätä kaikkia nykyisin käytössä olevat muuttujat taulukoksi?

edit. Mutta kaipa tuo onnistuu ihan vain käymällä loopilla nuo muuttujat läpi ja tallentaa ne sitten sinne taulukkoon...

Juhko [05.12.2009 12:39:13]

#

Voin koittaa, mikäli se sitten on parempi tapa.

Antti Laaksonen [05.12.2009 13:10:03]

#

Funktio get_defined_vars kerää kaikki määritellyt muuttujat taulukkoon. Sitten täytyy enää poistaa taulukosta muuttujat, joiden nimen alussa ei ole haluttua merkkijonoa.

<?php

$if_eka = "AAA";
$if_toka = "BBB";
$for_eka = "CCC";
$if_kolmas = "DDD";
$for_toka = "EEE";

$taulu = get_defined_vars();
foreach ($taulu as $nimi => $arvo) {
    if (substr($nimi, 0, 3) <> "if_") {
        unset($taulu[$nimi]);
    }
}

print_r($taulu);

?>

ankzilla [05.12.2009 14:52:36]

#

Antti se kyl osaa. :D
En ois itekkää kyl koskaa tommosta osannu tehä x)

Triton [05.12.2009 21:49:18]

#

Mua lähinnä kiinnostais tietää, että muistaako Antti kaikkien kielten kaikki funktiot ja metodit ulkoa, kun se joka kertaa jotain raapustaa :D

edit. Tietty funktiolistauksia on olemassa, mut silti.

Antti Laaksonen [05.12.2009 22:59:19]

#

En muista paljon mitään ulkoa, vaan etsin tiedot PHP:n manuaalista.

Metabolix [05.12.2009 23:07:39]

#

Itse olisin ehdottanut hakua GLOBALS-taulukosta. Tämä ei tietenkään löydä paikallisia (funktion sisällä olevia) muuttujia, mutta koko idea kuulostaa kyllä siltä, että tuskinpa siellä paljon omia funktioita onkaan. ;)

<?php
$nimet = preg_grep('/^if_/', array_keys($GLOBALS));

# Näytetään muuttujien nimet ja arvot.
foreach ($nimet as $nimi) {
  echo $nimi, " = ", $GLOBALS[$nimi], "\n";
}

Juhko [05.12.2009 23:12:52]

#

Teen mahdollisesti koko käyttöliittymäjutun uudestaan, mutta kokeilen nyt noita ensin. Kiitoksia.


Sivun alkuun

Vastaus

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

Tietoa sivustosta