IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 7. diel - Podmienky v PHP druhýkrát - pretypovania, skladanie a switch

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Snorlax
Tvůrce
Avatar
Snorlax:4.10.2013 19:26

možná by stálo i za zmínku že místo || a && se dá použít i or a and. dokonce je i mezi nima nějaká hierarchie (|| má vyšší hodnotu než or, nebo naopak, už si to nepamatuju bže používám jen or, and a závorky k tomu )

Odpovedať
4.10.2013 19:26
Kdo chce pochopit, pochopí. Kdo dělá že chce pochopit, může pouze dělat, že pochopil...
Avatar
relycanx
Člen
Avatar
relycanx:16.11.2013 16:45

Existuje i typ otázek, který se vyloženě ptá, zda-li proměnná obsahuje číslo, nebo řetězec? :)

 
Odpovedať
16.11.2013 16:45
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovedá na relycanx
Petr Nymsa:16.11.2013 17:04

myslím že hledáš is_numeric / is_string

Odpovedať
16.11.2013 17:04
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
relycanx
Člen
Avatar
Odpovedá na Petr Nymsa
relycanx:17.11.2013 2:03

jojo, to je ono, děkuju :) už jsem se dogooglil

 
Odpovedať
17.11.2013 2:03
Avatar
Jan Demel
Tvůrce
Avatar
Jan Demel:27.12.2013 14:53

Čus lidi. Mám takový problém. Řekl jsem si, že se vrhnu do PHPčka no ale v momentě, kdy tohle otevřu v mém prohlížeči a ukáže se mi konečné echo s výsledkem, tak tam je špatné kódování a ukáže se mi "VĂ˝sledek" ... Prosímvás pomohli by jste mi, co s tím mám dělat ? V editoru (Notepad++) mám nastevené kódování na UTF-8 v prohlížeči také a na HTML taky ... Tak vážně nevím, kde je problém.

index.php

<!DOCTYPE html>
<html>
        <head>
                <title>První test</title>
                <meta charset="UTF-8">
        </head>
        <body>
                <form method="POST" action="odesli.php">
                        <input type="text" name="cislo1"><br>
                        <input type="text" name="cislo2"><br>
                        <select name="moznost">
                                <option>Sečti</option>
                                <option>Odečti</option>
                                <option>Vynásob</option>
                                <option>Vyděl</option>
                        </select>
                        <input type="submit" value="Odešli">
                </form>
        </body>
</html>

odesli.php

<?php
mb_http_output( "UTF-8" );
$cislo1 = $_POST["cislo1"];
$cislo2 = $_POST["cislo2"];
$moznost = $_POST["moznost"];


$vysledek = 0;

switch($moznost)
{
        case 'Sečti':
                $vysledek = $cislo1 + $cislo2;
                break;
        case 'Odečti':
                $vysledek = $cislo1 - $cislo2;
                break;
        case 'Vynásob':
                $vysledek = $cislo1 * $cislo2;
                break;
        case 'Vyděl':
                $vysledek = $cislo1 / $cislo2;
}

echo("<h3>Výsledek je: $vysledek</h3>");
?>
Odpovedať
27.12.2013 14:53
To co se zdá být nemožné, je vždy možné.
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Jan Demel
Kit:27.12.2013 15:05

Zkus to tomu prohlížeči říct:

<?php
header('Content-Type: text/html; charset=UTF-8');
Odpovedať
27.12.2013 15:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Demel
Tvůrce
Avatar
Odpovedá na Kit
Jan Demel:27.12.2013 15:11

Funguje. Děkuju :)

Odpovedať
27.12.2013 15:11
To co se zdá být nemožné, je vždy možné.
Avatar
asanos
Člen
Avatar
asanos:8.10.2014 14:25

Chtěl bych upozornit na problém s && a AND ... Kdy jak už bylo zmíněno, každá má jinou prioritu.
Nedávno jsem řešil problém s menší úlohou a pokoušel jsem se o co nejrychlejší zápis (úloha byla časově omezená).

Velmi zjednodušeně jsem se dostal k:

$a=true;
$b=false;
// $c=$a AND $b;
$c=$a && $b;

Kdy při operátoru AND se provedlo přiřazení a výsledek byl tudíž TRUE,
zatímco && fungoval dle očekávání a vrátil se mi výsledek porovnání => FALSE.
_____________
Tento kód slouží jako ukázka takhle proboha neprogramujte!!! :D

Editované 8.10.2014 14:25
Odpovedať
8.10.2014 14:25
Na světě je 10 typů lidí. Ti, kteří rozumí binárce a ti co nerozumí.
Avatar
Rasťo Suchovský:25.1.2016 23:54

asanos, trošku som testoval (asi 5 minút), a dospel som k tomuto:

$e = true and false;
$f = true && false;
echo("<br />E = $e<br />F = $f");
$g = false and true;
$h = false && true;
echo("<br />G = $g<br />H = $h");

E = 1
F =
G =
H =

 
Odpovedať
25.1.2016 23:54
Avatar
Rasťo Suchovský:26.1.2016 0:19

asanos, už som to pochopil.

$a = true && false;    //false
$b = true and false;   //true

Je to preto, lebo operátor 'and' má nižšiu prioritu ako operátor '=' (a '=' má nižšiu prioritu ako '&&')

Takže druhý riadok môžeme zapísať takto:

($b = true) and false;

To znamená, že do $b sa uloží hodnota 'true' a potom sa vykoná "($b = true) and false", ktoré sa už neukladá nikam (teda aspoň som to tak pochopil).

To isté funguje aj pri '||' a 'or', keďže operátor 'or' má nižšiu prioritu ako operátor '=' (a '=' má nižšiu prioritu ako '||')

$a = false || true;    //true
$b = false or true;   //false

lebo

($b = false) or true;   //false

;)
Toto som sa práve naučil. :)

 
Odpovedať
26.1.2016 0:19
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!