IF - podmínka v proměné – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

IF - podmínka v proměné – PHP – Fórum – Programujte.comIF - podmínka v proměné – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
rycmond0
Newbie
8. 3. 2017   #1
-
0
-

Ahoj,

nevíte někdo jak do proměné nacpat celou podmmíku:

př.:

$a = 5;

if ($a == 5) {
	echo("a se rovná 5");
}else {
	echo("a se NErovná 5");
}

POTŘEBOVAL BYCH:
$a = 5;
$podminka = "$a == 5";

if ($podminka) {
	echo("a se rovná 5");
}else {
	echo("a se NErovná 5");
}

Lze něco takového udělat?

Předem díky za radu

Nahlásit jako SPAM
IP: 78.102.13.–
Řešení
Kit+15
Guru
8. 3. 2017   #2
-
0
-
Vyřešeno Nejlepší odpověď

#1 rycmond
Stačí uvozovky nahradit závorkami. Mělo by to fungovat i bez nich.

Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
rycmond0
Newbie
8. 3. 2017   #3
-
0
-

#2 Kit
Super díky moc.   Závorky mě napadly, ale použil jsem složené :-).

Nahlásit jako SPAM
IP: 78.102.13.–
peter
~ Anonymní uživatel
4014 příspěvků
9. 3. 2017   #4
-
0
-

Ty zavorky muzes klidne smazat. Pokud ta podminka neni slozitejsi, tak nemaji vyznam.
If je funkce, takze tam min jedny zavorky musi byt.
if($podminka) ...

Nahlásit jako SPAM
IP: 2001:718:2601:26c:5c04:f5...–
Kit+15
Guru
9. 3. 2017   #5
-
0
-

#4 peter
Závorky navíc se u booleovských výrazů docela hodí kvůli zlepšení srozumitelnosti, aby se odlišily od algebraických výrazú. Jiný význam nemají, povinné rozhodně nejsou.

if není žádná funkce, ale jazyková konstrukce. Proto se mezi if a závorku píše mezera, kvůli odlišení od funkcí.

Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
rycmond0
Newbie
13. 3. 2017   #6
-
0
-

Ahoj,

ještě doplnující dotaz:

 když podmínku skládám z různých částí, vznikne mě řetězec, jak ten teťezec pak změnit na podmínku?



$podminka = "pocetvozidel = 5";


$podminka = str_replace("=","==",$podminka)
$podminka = str_replace("pocetvozidel","\$pole[25]",$podminka)
// $podminka = "$pole[25] == 5";
//   jenže ted je podmínka řetězec

if ($podminka) {   //   IF to pokazde vyhodnoti jako TRUE
	echo("a se rovná 5");
}else {
	echo("a se NErovná 5");
}
Nahlásit jako SPAM
IP: 78.102.13.–
Kit+15
Guru
13. 3. 2017   #7
-
0
-

#6 rycmond
V proměnné $podmínka máš string, je tedy vyhodnocena jako true (proměnná není prázdná).

Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
rycmond0
Newbie
13. 3. 2017   #8
-
0
-

#7 Kit
Jojo to je jasný, že je to vyhodnocené jako TRUE.

Jak to udělat aby to nebylo true ale aby se vyhodnotila ta podmínka která tam je?

Nahlásit jako SPAM
IP: 78.102.13.–
peter
~ Anonymní uživatel
4014 příspěvků
13. 3. 2017   #9
-
+1
-
Zajímavé
Kit +

#6 rycmond
Pockej, pockej, co vlastne delas? Ty tam mas program, co ti veme retezec, prepise ho na jiny a pak ho potrebujes spustit jako php kod? Tak z toho se honem uzdrav, protoze tohle maji radi hackeri.
Jakoze, to muzes prevest na php kod pomoci eval, ale kdyz ti to nekdo nahackuje a prida si tam vlastni string, tak to spusti o jeho kod.
http://php.net/…ion.eval.php
Misto str_replace pouzij preg_replace_callback a seskladej podminky podle detekce vyrazu. Nebo by ti mozna stacil cyklus se strpos()

Nahlásit jako SPAM
IP: 2001:718:2601:26c:212b:e9...–
peter
~ Anonymní uživatel
4014 příspěvků
13. 3. 2017   #10
-
0
-

Hele, ale jestli to posilas nekde z formulare, proc to nedas do promenne? Treba do pole.
<input name="podminky[pocetvozidel]">
<input name="podminky[barva]">
<?php var_dump($GET['podnimky']); ?>

Nahlásit jako SPAM
IP: 2001:718:2601:26c:212b:e9...–
peter
~ Anonymní uživatel
4014 příspěvků
13. 3. 2017   #11
-
0
-

chyba, $_GET

Nahlásit jako SPAM
IP: 2001:718:2601:26c:212b:e9...–
rycmond0
Newbie
13. 3. 2017   #12
-
0
-

Neberu to z formuláře

tou jsou pravidla v databazi (ted tam mám dvě, pak ji tam bude třeba 100)

a já testuju data, a když něco neopovídá tak to vypíšu uživately

Nahlásit jako SPAM
IP: 78.102.13.–
Kit+15
Guru
13. 3. 2017   #13
-
0
-

#12 rycmond
Tak přidej tyto podmínky do SQL dotazu.

Nahlásit jako SPAM
IP: 85.93.112.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
rycmond0
Newbie
13. 3. 2017   #14
-
0
-

noo s tím SQL dotazem, to je dobrý nápad :-)

Nahlásit jako SPAM
IP: 78.102.13.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 68 hostů

Podobná vlákna

Proměné — založil roman.jaros

Proměné v objektu — založil Kall_Ell

Include do proměné — založil homelin

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý