Sovelluksessani on kolme tiedostoa, settings.php, topinclude.php ja sections.php, joita kutsutaan tuossa järjestyksessä. Siis sections.php:ssä on rivi include("topinclude.php"); ja topinclude.php:ssä rivi include("settings.php");. Topinclude.php:ssä on määritelty funktio, jonka pitäisi tietää settings.php:ssä määritellyt muuttujat. Funktiota kutsutaan sections.php:stä. PHP heittää erroria topinclude.php:stä funktion sisältä (undefined variable). Miten saan korjattua?
Muuttujien näkyvyysalueet?
En osaa määrittää niitä.
jos koodissa on toi a ja sen jälkeen tulee funktio b b:ssä ei näy noi muuttujat mitkä on sen ulkopuolella, vaan täytyy tehdä näin:
Asetukset voidaan tuoda funktioon myös global-avainsanalla.
<?php // settings.php $settings = array(); $settings['debug'] = true; // topinclude.php function foo() { global $settings; if ($settings['debug']) { echo 'Running function foo()'; } }
Joskin globaalit muuttujat ovat aina vaihtelevasti ikäviä jatkokehittäjien kannalta.
Globaalit muuttujat löytyvät lisäksi taulukosta $GLOBALS, eli esimerkiksi $GLOBALS['a'] viittaisi globaaliin $a-muuttujaan myös funktion sisällä.
Nyt toimii, kiitoksia jälleen kerran.
Aihe on jo aika vanha, joten et voi enää vastata siihen.