Autor Zpráva
H
Profil *
Zdravím, potřeboval bych poradit.

Operace ve skriptu musí být posloupné protože každá další operace je závislá na výsledku proměnné předchozí operace.

Takže by to vypadalo nějak takto:

operace1 -> operace2 -> operace3 = vysledek

Takto to nádherně funguje ale co když chci aby byl kod přeházený nějak takto (kvůli logičtějšímu uspořádání skriptu)?

operace3 -> operace1 -> operace2 = vysledek
TAKŽE SE NEJDŘÍV MÁ VYKONAT OPERACE1 PAK OPERACE2 (NA KONCI SOUBORU) A PAK TEPRVE OPERACE3 KTERÁ JE ZAPSÁNA NA ZAČÁTKU SOUBORU.

Takto mi to už samozřejmě už nefunguje protože php parser jede od začátku do konce souboru ...

Otázka zní jestli je nějaký způsob jak docílit toho aby to fungovalo i takto přeházeně?

Jediná možnost na kterou jsem zatím přišel je narvat celý předposlední blok "operace2" do procedury a tu pak zpětně zavolat v kodu "operace3" ..

Je i jiná možnost jak docílit toho aby to fungovalo?

Jakým příkazem se vůbec volá procedura která se má vykonávat nepřetržitě tzn. při každém spuštění skriptu?

díky
tiso
Profil
H: skús konkrétne napísať čo tie operácie znamenajú, resp. čo chceš s tým skriptom spraviť.
H
Profil *
Tyjo, tak ted se divam a ono to nefunguje jen kdyz delim ..

<?php
//OPERACE2
$b=$a/1;
//OPERACE3
$c=$b+1;
//OPERACE1
$a=1;
//VYSLEDEK
print ($c);
?>


Vyhodí to hlášku:

Warning: Division by zero in \xampp\htdocs\www\test.php on line 29

Pokud to zmenim na plus nebo krat nebo minus tak to jede vklidu,...

Da se to nejak osefovat aby to fungovalo i s tim delenim aniz bych musel zmenit strukturu a davat proces OPERACE1 pred OPERACE2?
H
Profil *
Vlastně to má být takto aby to házelo ten error:

<?php
//OPERACE2
$b=1/$a;
//OPERACE3
$c=$b+1;
//OPERACE1
$a=1;
//VYSLEDEK
print ($c);
?>

Otázka je jestli se to dá nějak obejít..

když bych přehodil $b=1/$a; na $b=$a/1; TAk už by se ten error neobjevoval ale zas bych si tím vůbec nepomohl, protože by to počítalo špatně.
tiso
Profil
[#3] H: v tomto zjednodušenom kóde sa nemá čo deliť nulou, tu tá chyba nemôže nastať. A nechápem dôvod prečo chceš meniť poradie operácií.
[#4] edit: aha, tu áno. Odkiaľ berieš tie premenné? A prečo nedosadíš priamo miesto $a hodnotu 1 v OPERACE2? Potom žiadnu OPERACE1 ani premennú $a nepotrebuješ.
H
Profil *
tiso: tak si to zkus hodit na localhost a hodí ti to chybu "division by zero" .. takže chyba tam je.]

No důvody pro to mám,.. jinak bych to normálně přehodil a dál by nebylo co řešit..
H
Profil *
.. no je to jen zjednoduseny kod.. proste promene se berou z predchozich procedur.. Ono je to jedno jak se dojde k tomu cislu co se bude delit.. Dulezite je ze to haze tu chybu to $a=1; to jsem napsal jen tak. Ono se deli treba 20/31 apod.. akorad to nemuze vydelit kdyz to neni posloupne ale tak jak sem napsal..
tiso
Profil
H: nehľadáš náhodou niečo takéto:
<?php 
if(!isset($a)){$a=1;}//este treba ak $a=0 vypisat hlasku ze rovnicu nemozno vypocitat
$b=1/$a; 
$c=$b+1; 
print ($c); 
?>
H
Profil *
ne to neni ono.. Jako ja pro to řešení mám, je mě zajímalo jestli se to dá udělat i nějak jinak než takto:

<?php
//OPERACE2
$b=1/cislo();
//OPERACE3
$c=$b+1;
//OPERACE1
function cislo()
{
return $a=1;;
}
//VYSLEDEK
print ($c);
?>

Protože ta procedura cislo() se vždycky musí zavolat a já potřebuju aby se vykonávala při každém zpuštění skriptu nepřetržitě bez nějakého volání..
tiso
Profil
H: ja stále žiadnu logiku v tom prehádzanom poradí nevidím. Buď niečo zjednodušuješ až príliš, alebo ja neviem...
H
Profil *
no logika v tom je ta že mám skript který je strašně dlouhý a má svoji logickou strukturu ne vtom jak se vykonávají procesy ale co která část skriptu zajišťuje.. bez toho by v tom totiž vznikl strašný chaos... Takže tak
tiso
Profil
H: ten skript by som si rád pozrel, môžeš ho vložiť sem, alebo mne na mail (uvedený na stránke v mojom profile)?
H
Profil *
jen to ne.. ale jinak dík za dosavadní support.)
obi
Profil
nehledáš náhodou příkaz goto? Ale co vím, tak ho nikdo nedoporučuje používat, protože kód ještě více znepřehlední. Navíc je dostupný až od PHP 5.3
Nox
Profil
Zdá se mi, že začínáš vymýšlet nějakou zhůvěřilost...

Všechny funkce měj definované před jejich použitím, všechny proměnné měj definované před jejich použitím, nepoužívej goto, atd.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0