Autor Zpráva
Jack Finger
Profil
Potřeboval bych helpnout:

v souboru data.php mám:


$say_it = 'hello';
function say_hello(){
return $say_it;
}


v index.php mám:

require("data.php");
require("vypis.php");


a ve vypis.php mám:

echo say_hello();


mělo by to vypsat 'hello', ale nevypisuje nic, nevíte někdo proč? JF
Petr Tichý
Profil
Nemělo by místo "echo say_hello();" být spíše jen "say_hello();"? Když je to již funkce tam tam IMHO nemá být echo.
Zkus to a napiš jak to dopadlo ;)
roberta
Profil
skús vo funkcii say_hello() vrátiť return 'hello';
ak to pôjde, tak PHP nepozná globálne premenné
Jack Finger
Profil
Petr Tichý:
zkoušel jsem, nejde.

roberta:
aha, to jsem zapoměl napsat, to jsem zkoušel, vypíše to hello... takže co s tím?
roberta
Profil
v php.ini nájdi register_globals a nastav to na On
nightfish
Profil
Jack Finger
do funkce say_hello si dej
global $say_it;

(a nastuduj si něco o kontextu platnosti proměnných)
Jack Finger
Profil
roberta:
sme na webhostingu, na php.ini si ani nesáhnem :o(

nightfish:
no globalu sem se chtěl právě vyhnout...
nightfish
Profil
Jack Finger
no tak si tam tu proměnnou předej v parametru

a nebo napiš, čeho chceš dosáhnout, třeba vymyslíme nějaké lepší řešení
Jack Finger
Profil
chtel bych dosáhnout toho aby se vypsalo hello... ani global ani komprimace do jednoho douboru nejde, tohle je úryvek asi z 3000 radkovyho kodu a web je jeste rozdelenej do slozek aby mohly jet na vic temat....
tiso
Profil
Jack Finger

$say_it = 'hello';
function say_hello(){
global $say_it;
return $say_it;
}


$say_it = 'hello';
function say_hello($say_it){
return $say_it;
}

alebo:

define("SAY_IT", "hello");
function say_hello(){
return SAY_IT;
}

iným spôsobom ako cez global, alebo parameter premennú do funkcie nedostaneš, posledný spôsob je konštanta
roberta
Profil
chtel bych dosáhnout toho aby se vypsalo hello
echo 'hello';


inak premenná sa predáva v paramerte asi takto:

data.php

function say_hello($text){
return $text;
}

vypis.php

$say_it = 'hello';
echo say_hello($say_it);
Jack Finger
Profil
roberta
nejsem začátečník a kdybych to mohl udělat jednoduše, tak to nedělám složitě.

tiso
to je asi jediny reseni, pokud jeste nema nekdo nejaky jiny???

diky vsem, jestli jeste neco mate, piste.
nightfish
Profil
Jack Finger
no ještě je tu možnost použít
$_GLOBALS['say_it'];
ale je to víceméně to stejné jako globals $say_it;
Yrrah
Profil
$_GLOBALS['say_it'];

Ne, je to $GLOBALS['say_it'];
nightfish
Profil
Yrrah
díky za opravu
zde se projevila jak moje nepozornost, tak i neschopnost programátorů PHP jednotně pojmenovávat proměnné, funkce, ...
Yrrah
Profil
neschopnost programátorů PHP jednotně pojmenovávat proměnné, funkce
Jo, to máš recht. Na něco si špatně zvykám a jsou případy, kdy i kvůli trivialitě otevírám manuál.
Jack Finger
Profil
globals je bez podtržítka???? Oops...
Toto téma je uzamčeno. Odpověď nelze zaslat.