Autor Zpráva
Inpocasi
Profil
Na stránce spustím program v němž spočítám na konci např. proměnou x, program dojede na kobec a zjistí že x je 10. A já chci aby mi na začátku vypsal výslednou x neboli těch 10 (na začátku má x hodnotu 3).
Casero
Profil
Inpocasi
co třeba cyklus??..
Casero
Profil
Inpocasi
i když to njka nechápu...vo co tam de??...
šufánek
Profil
máš dvě možnosti :
první a jednodušší je celý program umístit do hlavičky - než začneš házet výstup do těla, proměnná už bude spočtená :)

druhý "čistší" a elegantnější způsob je s použít buffer - užitečný funkce php určený právě pro podobný případy viz http://cz2.php.net/outcontrol - je to na chvilku studia, ale stojí to za to :)
tiso
Profil
šufánek druhý "čistší" a elegantnější způsob je s použít buffer
Toto by som za čístejší spôsob nepovažoval...

Treba oddeliť prezenčnú vrstvu...
WanTo
Profil
K tomu jsou funkce.
šufánek
Profil
Treba oddeliť prezenčnú vrstvu... - to je podle mě spíš záležitost struktury předchozího kódu, tam můžou být vrstvy stejně tak dobře oddělené, jako pomíchané - nezávisle na tom, jestli výstup bufferuju nebo třeba rovnou echuju.
Joker
Profil
Inpocasi
Nějak jsem nepochopil, co to vlastně chcete udělat.
tiso
Profil
šufánek
Skús ešte raz, tá Tvoja dlhá veta mi nie je jasná...
šufánek
Profil
tiso: oddělování vrstev se tohle vlákno v podstatě netýká. zavolám-li na začátku skriptu funkci "ob_start()", nijak to neovlivní, jak jsou v dalším skriptu odděleny vrstvy. Samozřejmě - spočítam-li si žádanou proměnnou na začátku, a nebudu jí vůbec míchat do outputové části skriptu, tím líp.

Je-li to stále nejasné, pak zkus upřesnit kde je podle tebe problém v oddělení vrstev.
tiso
Profil
šufánek
Už mi to je jasné ako si to myslel... Ale mám dojem že buferovaním výstupu nedosiahneš to čo Inpocasi chcel, a ešte nie je jasné či sme to čo chce aj správne pochopili...
šufánek
Profil
asi tak:

$x=3;
echo "<body>";
ob_start();
echo "blabla";
//vypocet promenne x treba...
$x = $x+7;
$buffer = ob_get_flush();
//do vystupu jde driv promenna nez buffer - prestoze byla spoctena pozdeji
echo $x.$buffer;
echo "</body>";
Toto téma je uzamčeno. Odpověď nelze zaslat.

0