Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 6. diel - Podmienky v PHP

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
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:24.12.2013 21:31

jj to mě taky napadlo mrknu nato a uvidím zda se někam dohrabu :D

Avatar
studnicka.ji
Člen
Avatar
studnicka.ji:25.12.2013 7:55

tak fakt nevím co je jinak pokud si ten výpočtet zkopíruju podle sdraca tak mi taky neběží ale to jsem si stahl tak to běží

Editované
Avatar
Kamil
Člen
Avatar
Kamil:1.1.2014 20:51

Zdravím,

Začal jsem od začátku projíždět a zkoušet si PHP podle zdejších tutoriálů a naprogramoval jsem si tuto kalkulačku, vše se tvářilo v pořádku. Vypl jsem počítač odjel jsem pryč, no a teď jsem zapnul znova PC, nastartoval jsem wampserver a kalkulačka mi vyhazuje tyto chyby. Jak zadám hodnoty dvou čísel, tak je vše zas v normálu.

Přikládám dvě fotografie a zdrojový kod PHP...

<?php
if(isset($_POST["cislo1"])){
$cislo1=$_POST["cislo1"];
$cislo2=$_POST["cislo2"];
$operace= $_POST["operace"];
}
/* Pro sčítání */
if($operace=='scitani'){
     $vysledek = $cislo1+$cislo2;
     }
/* Pro odčítání */
else if($operace=='odcitani'){
     $vysledek = $cislo1-$cislo2;
}
/* Pro násobení */
else if($operace=='nasobeni'){
     $vysledek = $cislo1*$cislo2;
}
/* Pro dělení */
else if ($operace=='deleni'){
     if($cislo2!=0){
     $vysledek = $cislo/$cislo2;
     }
     else{
        echo("Nulou nelze dělit!");
     }

}
echo ("Výsledek:".$vysledek);
Avatar
Odpovedá na Kamil
Patrik Valkovič:1.1.2014 21:01

Předpokládám že se to objeví když příjdeš poprvé. Je to způsobeno tím, že jakmile příjdeš poprvn, tak není nastaveno $_POST['cislo1'], tudíž se ti nevytvoří proměnná $operace, se kterou dále pracuješ. Celý ten kód musíš vložit do té podminky if(isset($_POS­T['cislo1]))

Editované
Odpovedať
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Kamil
Kit:1.1.2014 21:03

Zřejmě máš prázdné pole $_POST a tím se ti nenaplní $cislo1, $cislo2 ani $operace.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kamil
Člen
Avatar
Odpovedá na Patrik Valkovič
Kamil:1.1.2014 21:04

Ano máš pravdu, mělo mě to napadnout hned....

Díky za radu.

Avatar
Kit
Tvůrce
Avatar
Odpovedá na Kamil
Kit:1.1.2014 21:08

Tady by se hodil switch.

Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Kamil
Kit:1.1.2014 21:22
<?php

function operace($cislo1, $cislo2, $operace) {
    switch ($operace) {
    case 'scitani' : return $cislo1 + $cislo2;
    case 'odcitani' : return $cislo1 - $cislo2;
    case 'nasobeni' : return $cislo1 * $cislo2;
    case 'deleni' :
        if($cislo2 == 0) throw new Exception("Nulou nelze dělit!");
        return $cislo / $cislo2;
    }
    throw new Exception("Neznámá operace '$operace'");
}

if (isset($_POST["cislo1"]) && isset($_POST["cislo1"]) && isset($_POST["operace"])){
    try {
        echo ("Výsledek:" . operace( $_POST["cislo1"], $_POST["cislo2"], $_POST["operace"]));
    } catch (Exception $e) {
        echo $e->getMessage(), "\n";
    }
}
Odpovedať
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kamil
Člen
Avatar
Odpovedá na Kit
Kamil:1.1.2014 21:23

Budu pokračovat na další tutoriál, tam se switch rozebírá.
Ale děkuji za ukázku. :)

Avatar
Vasekdvor
Člen
Avatar
Odpovedá na Kamil
Vasekdvor:28.3.2014 0:04

No pro testovací účely to bude vyhazovat undefined variable přesně z důvodu jak psali výše ale na live servech většinou je nastavený
error_reportin­g(E_ALL ^ E_NOTICE);
což je také výchozí nastavení PHP. Takže tam to neuvidíš.

Posledné komentáre sú na spodnej časti poslednej stránky.
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.

Zobrazené 10 správy z 97.