Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Muuttuja muuttujasta

Sivun loppuun

joekool [23.11.2004 00:43:03]

#

Onkos teillä kovassa käytössä nämä "muuttuja muuttujat", joista olen sattumalta löytänyt materiaalia netistä. Onko hyvä ratkaisu?

tsuriga [23.11.2004 00:46:59]

#

Tarkoitat varmaan jotain tyyliin:

<?php
$var1 = "var2";
$var2 = "hello";

echo $$var1; // tulostaa "hello"
?>

Vae? Vähän purkkaratkaisulta tuo vaikuttaa, mieluummin käytän vaikka taulukon indeksejä.

T.M. [23.11.2004 01:18:22]

#

Itte käytän joskus:

<?php
foreach($_POST as $key => $val){
    $$key = $val;
}
?>

Ei tartte sitten käytellä noita $_POST['seppo'] juttuja, vaan suoraan: $seppo
Saman voi toki tehdä myös $_GET taulukolle.

Kellään muita keksintöjä?
Ei Ei... en keksi mitään.

Edit: Höh, en ole sitten tajunnut exträktiä käyttää :D Vaikka olen tuotakin katsellut joskus.

tsuriga [23.11.2004 01:21:21]

#

Tuon saman tekee extract.

T.M. [01.12.2004 15:08:50]

#

Äh, noniin, nyt muistui mieleen:

<?php
foreach($_POST as $key => $val){
    $$key = stripslashes($val);
}
?>

Eli tuolla tavalla voit siistiä helposti koko lomakkeen tiedot, ja samalla kääntää ne helpommin käsiteltävään muotoon.

...Eikai tuohonkin ole jo valmista funktiota? :E

tsuriga [01.12.2004 15:39:10]

#

One-liner to the rescue:

<?php
extract(array_map('stripslashes', $_POST));
?>

T.M. [03.12.2004 01:01:50]

#

Nojoo, muistaakseni tuo array_map() ei nopeuta yhtään. Oli kaiketi jopa hitaampaa käyttää tuota kuin normaalia foreach silmukkaa.
Ja jos haluaa vielä muutakin tehdä noille lomakkeen tiedoille, esimerkiksi trimmata ne, niin sitten täytyisi käyttää kahta array_map() funkkaria, joka ei ole todellakaan järkevää...

Minusta tuo foreach silmukka on ihan järkevä tälläisissä tapauksissa, kun kierroksiakaan ei tule kuin muutama, ja sen muokkaaminenkin on helpompaa, ja toiminnan lukeminen huomattavasti selkeempää :)

Ja jos haluaa käyttää vielä jotain eksoottisempaa funktiota, jotka ottavat useamman parametrin, niin array_map() tulee käyttökelvottomaksi.

tsuriga [03.12.2004 01:25:29]

#

Siihenhän voisi tehä sitten oman funkkarin ja kutsua sitä :). Tosin melkein sama tehdä se foreach silmukalla, nopeampikin se voi hyvinkin olla.


Sivun alkuun

Vastaus

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

Tietoa sivustosta