Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: PHP ja funktion ulkopuolisen muuttujan arvo

xxmss [03.03.2021 08:36:53]

#

Ongelmana on funktion ulkopuolisen muuttujan arvon tulostaminen.

En halua käyttää parametreja funktiota print_conn kutsuttaessa, koska silloin minun täytyisi muokata yli sataa tiedostoa. Global $conn_sivusto ei myöskään kuulosta hyvältä.

Miten saisin tämän toimimaan?

$connSivusto = "jee";

print_conn();

function print_conn($conn = $connSivusto)
{
  print $conn;
}

Lebe80 [03.03.2021 08:41:52]

#

Eikö sun tekstieditorissa pysty etsimään tuota funktiota ja automatisoimaan tuota "tiedostojen muokkaamista"?

Tai vastaavasti, kuinka usein tuo $connSivusto -muuttujan arvo vaihtuu koodisi sisällä? Lähinnä, että voisiko print_conn:n sisällä olla jokin toiminto, joka hakisi tiedon jollain muulla tapaa?

Grez [03.03.2021 08:42:01]

#

Komppaan lebeä.

Se Global ei kuulosta hyvältä, koska tuollainen "funktion ulkopuolisen muuttujan arvon tulostaminen" ei ideana kuulosta hyvältä.

Jos kuitenkin haluat tuollaisen "huonon idean" toteuttaa, niin global tekee juuri sen mitä pyydät.

xxmss [03.03.2021 08:46:45]

#

Grez kirjoitti:

Se Global ei kuulosta hyvältä, koska tuollainen "funktion ulkopuolisen muuttujan arvon tulostaminen" ei ideana kuulosta hyvältä.

Jostain luin, että funktiossa voisi olla use-lisäys, jolloin voisi käyttää ulkopuolista muuttujan arvoa. Mutta en tiedä, miten tuo use tuohon määritetään.

Metabolix [03.03.2021 08:51:00]

#

Jos tuo alussa näyttämäsi koodi toimisi (tuollaisena tai jollain kikalla), se olisi käytännössä ihan sama asia kuin globaalin muuttujan käyttö. Globaalin muuttujan piilottaminen johonkin ei tee siitä vähemmän globaalia, jos idea on kuitenkin sama.

Use liittyy vain nimettömiin funktioihin:

$jokin_muuttuja = 123;
$muuttujassa_oleva_funktio = function ($parametri) use ($jokin_muuttuja) {
  return $jokin_muuttuja + $parametri;
};

Vastaus

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

Tietoa sivustosta