viditelnost proměnných v require souborech
18 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
proč když napíšu: $pokus = "nic"; require ./neco.php; (kde je $pokus = "neco";) echo "$pokus"; tak se vytiskne nic, místo něco ?
-
vytiskne se "něco"
-
no právě že se vytiskne nic. a já nevím proč a potřebuju vytisknout něco. co s tím krámem je ?
-
stip: a máš u toho require před a za souborem taky uvozovky? mohlo by to vyřešit tvůj problém
-
ale jó, ten soubor se opravdu zrequajruje správně. prostě chyba bude asi jinde, protože správně by se měla proměná přenést, nebo ne?
-
<HTML>Jak psala dis. musi to vypsat "neco" pokud to nevypise nic mas to budto zapsane jinak nez jsi uvedl sem do fora nebo mas nejakou oldies verzi php</HTML>
-
a co zkusit include - to je neco hodne podobnyho, ne? tusim ze bez includovanyho muze PHP pracovat, bez require ne, ze... ?
-
stip: teď mi to není přesně jasný. Tobě se "vypíše 'nic' " nebo "nevypíše nic"? :D možná jsi nevybral úplně přesnej příklad s tou hodnotou proměnných... pro jistotu přesná syntaxe: <? $pokus = "nic"; require "neco.php"; echo "$pokus"; ?> a soubor neco.php: <? $pokus = "něco"; ?> jestli myslíš že to máš správně, tak zkus a) máš-li v tom vkládaném souboru spoustu příkazů, tak to zkušebně nahraď jen za ten jeden s proměnnou. Můžeš mít chybu v úplně jiném příkazu. b) jestli myslíš že to máš dobře, tak do toho requirovaného souboru vlož nějaký echo, ať vidíš, jestli se provádí...
-
:D
-
Je docela možné, že ti to v tom vkládaném souboru někde vyhnilo. Doporučuji odstranit všechny @ před příkazama, protože to není užitečná věc pro debug a většinou způsobí to, že místo chyby, která by se ti vypsala, se nevypíše nic, jenže ta chyba ukončí vykonávání skriptu, takže nevíš, co se kde stalo. Odstraň i @ před require (pochopitelně, pokud tam nějaký máš). A jinak viz b) BTW, require ./neco.php; bych ti teda nesežral, musel bys mi předhodit ještě nějaké uvozovky :)
-
Pardón já jsem to popsal obráceně, než to je. Jde o toto: *************************************** index.php <?php // načtu funkci pro parsováni konfiguračního souboru Load_Config() require("./include/F_Load_Config.php"); // pomocí funkce Load_Config() rozparsuju soubor a zaregistruju konstanty $key = Load_Config("./config/config.ini"); //načtu stránku danou cestou poskládanou z konstant page_url a error_document require(page_url.error_document); ?> *************************************** Správně se načte stránka error.php, což znamená že vše funguje správně. Jenomže pokud obsahuje načtený soubor: *************************************** error.php <?php $jina_key = Load_Config("./config/config.ini"); echo error_dokument; ?> *************************************** hlásí fatal error, že nezná funkci Load_Config(), v případě smazání tohoto řádku, nezná ani konstantu (nevytiskne její obsah, ale název). Otázka tedy zní: Jak udělat, aby funkce, konstanty a oproměnné, které jsem definoval v stránce, byly normálně použitelné v souboru který do stránky načítám pomocí require (Samozřejmě pouze po načtení, nikoliv když soubor volám samostatně). ***************************************
-
require("./include/F_Load_Config.php"); musi byt i v error.php
-
Rozumim, jde o to, že všechno v includovaném souboru se provede v rámci toho skriptu z kterého ho volám, ale naopak ten includovaný z původního skriptu nic nevidí, žádné funkce, proměnné ani konstanty. Mohl bych ho includovat s parametrama, jako třeba: require("./include/F_Load_Config.php?key=007"); abych do něj tu proměnnou dostal ?
-
Jak vypada funkce loadconfig?
-
Sorry byl jsem chvili mimo, takže load_config() je takto: <?php function Load_Config($ini) { if (!($config = @Parse_Ini_File($ini))) { Die("FATAL ERROR - function Load_Config() failed"); } else { foreach($config as $key => $value) { if (!defined($key)) { define($key, $value, 0); } } } return $config; } ?>
-
hele, mě to include taky vyhnil, ale jen na nějakym serveru. dokonce nežere ani z URL, musí se mu napsat if($_GET['promenna'] == ""){$_GET['promenna'] = $_GET['promenna'];} co to je?
-
Tohle je pekna ptakovina, ktera nedela nic. No, zalozi promennou v globalnim poli $_GET[], pokud neexistuje...
-
vim co to je, ale proč to musím psát, proč prostě nestačí echo $_GET['promenna']; ale musim pred to vrazit tu nesmyslnou podminku, aby to vytisklo obsah ty promenny...