Autor Zpráva
Jcas
Profil *
Toto je absolutně triviální dotaz, tak se omlouvám. Ale nikde jsem podobný dotaz nenašel.
Je správně všechno? Je to validní?

<?php

$admin = true;
if($admin==true) {}   //tady není co řešit, ale pak jsem někde viděl
if($admin) {}   //asi je to naprosto to samé

A tedy
if(($admin!=true)==(!$admin)) {}  //je podmínka splněna? Také naprosto stejné

// A poslední je taky správný zápis???
if(!$admin||!$pravda) {}

?>

Ptám se proto, že zatím neustále jak blb píšu pořád rovno, nebo nerovno false, nebo true.
panther
Profil
Jcas:
Je to validní?
jak validní? syntakticky to je celé správně.

Proč si nezkusíš, která podmínka projde a která ne? Třetí podmínka, bez ohledu na to, co vrací (to si zkus sám) je nesmyslná, přestože syntakticky správná.

Dej si ještě pozor na různé hodnoty, 0, null, false a porovnávání ==, resp. ===. Zkus si příklady i s nimi, ne jen s pouhým true/false.
Sir Tom
Profil
Jcas:
if(($admin!=true)==(!$admin)) je true (false==false)
if(!$admin||!$pravda) jakou hodnotu má $pravda?
Tori
Profil
Jcas:
if(!$admin||!$pravda) {}
Záleží na tom, jak to myslíte:
if (!$a || !$b)  // projde, pokud $a nebo $b nebo obě jsou FALSE.
if (!$a && !$b)  // projde jen pokud obě proměnné jsou FALSE
Často se ale chybuje, pokud porovnáváte jednu proměnnou proti více různým hodnotám:
if ($a != 1 || $a != 2)  // projde vždy, ať už $a obsahuje cokoli
if ($a != 1 && $a != 2)  // projde pokud $a nemá hodnotu 1 ani 2
if (!in_array($a, array(1, 2)))  // totéž co předchozí
atd. Zkoušejte. :-)
peta
Profil
Vzdyt si to vsechno rozepis, ne? V dokumentaci je to http://php.net/manual/en/language.operators.logical.php . Pro google je to https://www.google.cz/search?q=boolean+algebra . Omezene se to uz uci na zakladni skole jako vety typu jestlize neco, pak neco. A ty mas pak dokazovat, kdy to plati. na stredni by se to melo delat podrobneji v matice, lepe v technickych oborech. Pri programovani je to zaklad, prvni ucivo.
 
<?php
$admin = true;
if($admin==true) {echo "1=true";}
if($admin) {echo "2=true";}
$a = $admin!=true;
$b = !$admin;
if($a)  {echo "3=true";}
if($b)  {echo "4=true";}
if($a==$b)  {echo "5=true";}
if(!$b||!$pravda) {echo "6=true";}
?>

$admin = true
!$admin = false
$pravda je undefined, pro podminky je to false (protoze se v kodu nikde nevyskytuje jina hodnota)
false OR false = false
PanQ
Profil *
Jcas:

Pokud chapu spravne tak ti nebylo zodpovezona cast dotazu:

if ($a) lze zapsat take ja if ($a == true)
potazmo
if (!$a) lze zapsat take jako if ($a == false )

zapis if obecne dela to kdyz vysledny vyraz v () je 1 takze pak zapis ($a) testuje zda je $a true a nemusis to zapisovat jako ($a == true ). To same plati pro dalsi elementy jako je napr. while

vyrokovou logiku nejlepe pochopis tak jak ti radi ostatni nahore - zkousej :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0