Autor Zpráva
24k
Profil *
A) if ($var==true) $result="OK"; else $result="NOT OK";

echo "Vysledek je $result, konec testovani";

B)

echo "Vysledek je ".(($var==true) ? "OK" : "NOT OK").", konec testovani";



C) pripadne jiny (napiste)
Meldo
Profil
Ja pouzivam prvu variantu. Druhu len vynimocne.
finc
Profil

function getTest($var)
{
return "Výsledek je ". (($var == false) ? "NOT " : "") ." OK, konec testovani";
}

echo getTest($var);
koudi
Profil
Záleží na tom, co ti víc vyhovuje.
Ni7R0
Profil
Já používám ternární operátor spíš při přiřazování hodnot, v konkrétním případě bych ho použil takto:

$result = $var == true ? "OK" : "NOT OK";
echo("Výsledek je $result, konec testování");
Leo
Profil
<?php
if ($var==true) $result="OK"; else $result="NOT OK";
?>
<p>Vysledek je <?php echo $result ?>, konec testovani</p>

S tim, ze u slozitejsich veci neco podobnyho, ale pres sablony. Leo
24k
Profil *
DIky..vsem

Leo > nejaka jednodussi sablona by nebyla? Muzes nekam hodit nejaky priklad, rad se naucim neco new .. a zezacatku bych potreboval neco snadnejsiho a ceskeho
Leo
Profil
Ceskeho? V programovani? Na pochopeni principu mi nejjednodussi pripada Templatepower, ale vsechno k nemu je jen anglicky. Leo
rabbit
Profil
Tak oproti všem ostatním bych já osobně použil způsob B).

Samozřejmě, důležitá je přehlednost, pro ni hovoří asi více způsob A). V tomto konkrétním případě to s tou nepřehledností u B) není nijak tragické.

Otázkou je, má ještě někde jinde, než v tom výstupu smysl obsah proměnné "OK", případně "NOT OK"? Pokud ne, do žádné proměnné bych to necpal a použil tedy způsob B).
Hugo
Profil
24k

Ja mam dobre zkusenosti se systemem smarty, ale taky je jen v anglictine.
24k
Profil *
No ja tedy se v sablonach moc neorientuji, tedy spise vubec. Nekde jsem videl cosi jako nahrazovani vlastnich ELEMENTU v {}

cili

neco jako

sablona.html

html
{HEADER}

.
.
{CONTENT}

.
.

{FOOTER}


a pak se tato sablona v dynamicke strance zpracuje a nahradi se tim cim chci ja.

Tak nejak? Nebo je toto nekde popsano? Nikde jsem to jest nevidel
Hugo
Profil
24k

Podivej se na weby tech projektu. Ty sablony se lisi jak schopnostmi, tak syntaxi.

http://smarty.incutio.com/
Leo
Profil
Smarty je sice vykonne, ale velky moloch, Leo
Hugo
Profil
Leo

To je pravda, ale jsem liny se ucit vice systemu. Na male projekty sablony nepouzivam a u vetsich jsem se smarty spokojeny. Ale vim, ze hodne lidi preferuje jine sablony (htmltmpl, TemplatePower, atd.).
Leo
Profil
"jsem liny se ucit vice systemu"

Plne chapu :-) Leo
Honza Široký
Profil
Ja bych to psal:
echo "Vysledek je " . ((!$var) ? "NOT" : "") . " OK. konec testovani";

Každopádně testovat $var==true je blbost, stačí testovat akorát $var.
Retal
Profil
Jako Ni7R0 používám ternární operátor pouze pro přiřazování hodnot.
Systém šablon mám vlastní - neumí nic, než nahradit označené řetězce proměnnými se stejným názvem, zvládá jednoduchý cyklus (pokud je proměnná pole) a nic víc. Má cca 80 řádků kódu a stačil mi zatím pro všechny projekty. Nepotřebuju další jazyk mezi HTML a PHP.
Retal
Profil
Honza Široký
Nebo empty($var), pokud člověk počítá s tím, že nula také neprojde. Výhoda: Nevyhazuje notice u neinicializovaných proměnných :)
jogurt
Profil
<?

echo("Vysledek je ");
$var=(@$var===true) ? 'true':(@$var===false ? "false":NULL);
$moznost=array("a"=>'NOT OK',"b"=>'UNDEFINED',"c"=>'OK');
$index=0;
switch($var):
case "true":
$index=$index+1;
case 'false':
if($index!=0) $index=$index-2;
else $index=$index+1;
default:
if($index!=-1 && $index!=1) $index=0;
endswitch;
if(!$index) $pismeno='b';
elseif($index<0) $pismeno='c';
elseif($index>0) $pismeno='a';
?> <?=$moznost[$pismeno];?> <? echo(". konec testování"); ?>


V praxi bych to ale mozna napsal jinak:

Vysledek je <?=$var?'':'NOT '?>OK, konec testovani

j
rabbit
Profil
to jogurt
Dík, dávám Ti 100 bodů za kvalitní příspěvek ... při nedělním večeru jsem se dobře pobavil.

Jinak tvé praktické řešení stojí taky za poklonu ;)
krteczek
Profil
Retal: mohl by jsi svuj jednoduchy šablonovaci system zveřejnit???
mila
Profil
Osobně bych použil druhý způsob, jen ho zpřehlednil:

echo "Vysledek je " . ($status ? "OK" : "NOT OK") . ", konec testovani";


- Pojmenovat proměnou, aby vyjadřovala, co obsahuje (často to ušetří řádek komentáře:)
- Stačí psát true, místo true==true
- Operátor zřetězení ze zásady odděluji mezerou
Toto téma je uzamčeno. Odpověď nelze zaslat.

0