Autor Zpráva
abcde5
Profil
Zdravím, mám problém s vytvářením proměnné v php, máte někdo nějaké rady a typy ?


 function checkForm(){
      if ($_GET["1"] == "" || $_GET["2"] == "" || $_GET["3"] == "" || $_GET["4"] == ""){
        echo "Nejsou zadány čtyři maturitní předměty!";
        $musisZobrazit = true;
      }else{
      echo "Zpracování formuláře OK.<br />";
      echo "Uživatel zadal:<br />";
      echo "1. maturitní předmět: " .$_GET["1"]."<br />";
      echo "2. maturitní předmět: " .$_GET["2"]."<br />";
      echo "3. maturitní předmět: " .$_GET["3"]."<br />";
      echo "4. maturitní předmět: " .$_GET["4"]."<br />";
      if ($_GET[5] != ""){
        echo "5. maturitní předmět: " .$_GET["5"]."<br />";
      }
      $musisZobrazit = false; 
      }
    }  
  $musisZobrazit = true;  
  if (!empty($_REQUEST)){checkForm();}    
  if ($musisZobrazit){
?>
<form action="mat_predmety.php" method="get">
1. maturitní předmět: <input type="text" name="1" value="<?php echo $_GET["1"]?>" /><br />
2. maturitní předmět: <input type="text" name="2" value="<?php echo $_GET["2"]?>" /><br />
3. maturitní předmět: <input type="text" name="3" value="<?php echo $_GET["3"]?>" /><br />
4. maturitní předmět: <input type="text" name="4" value="<?php echo $_GET["4"]?>" /><br />
5. maturitní předmět: <input type="text" name="5" value="<?php echo $_GET["5"]?>" /><br />
<input type="submit" value="Odeslat" />
</form>
juriad
Profil
2. řádek změň na:
if(empty($_GET["1"]) || empty($_GET["2"]) || empty($_GET["3"]) || empty($_GET["4"])) {

5. řádek změň na:
if(! empty($_GET[5])) {

před 17. řádek přidej:
return $musisZobrazit;

19. řádek nahraď za:
if(! empty($_GET)) {$musisZobrazit = checkForm();}

empty kontroluje, zda taková hodnota existuje a není prázdná (bohužel hodnota "0" znamená prázdná)
Z funkce nemůžeš měnit proměnné definované mimo funkci. Můžeš maximálně hodnotu z funkce vrátit a venku ji nastavit.
peta
Profil
"Z funkce nemůžeš měnit proměnné definované mimo funkci." , pokud nepouzijes prikaz global, nejlepe na zacatku funkce.
http://cz1.php.net/manual/en/language.variables.scope.php
References with global and static variables

Ale osobne bych pouzil return, viz juriad .
Joker
Profil
peta:
pokud nepouzijes prikaz global, nejlepe na zacatku funkce
Začátečník ovšem udělá dobře, když zůstane u „Z funkce nemůžeš měnit proměnné definované mimo funkci“, protože použití global obvykle znamená špatně navržený kód.
abcde5
Profil
  <title>Největší ze tří čísel</title>
</head>

<body>
  <script language="JavaScript">
     var x=eval(prompt("Zadej první číslo:",1));
          y=eval(prompt("Zadej druhé číslo:",2));
          z=eval(prompt("Zadej třetí číslo:",3));
          max=x;
     if (y>max) {
        if (z>y) {
           max=z;
        } else {
           max=y;
           }
     } else {
       if (z>x) {
          max=z;
       }
     }
     alert("Největší číslo bylo: "+max);
  </script>



<body>
  <script language="JavaScript">
     var povolani=prompt("Jaké je Vaše povolání?","programátor");

    switch(povolani) {
      case "programátor": document.write("A co programujete?"); break;
      case "lékař": document.write("Počítač naštěsí nestoná."); break;
      case "učitel": document.write("To asi sotva uživíte svoji rodinu..."); break;
      default: document.write("Takové povolání neznám."); break;
    }
  </script>



<body>
  <script language="JavaScript">
     var objednavka=prompt("Čím posloužím?","účet");
     do {
         document.write("Měli jste: "+objednavka+"<br>");
         objednavka=prompt("Co si ještě dáte?", "účet");
     } while (objednavka!="účet");
     document.write("Těšíme se na Vaši další návštěvu.");
  </script>



<?php
  $soucet = 0;
  $soucet += $soucet + 100;
  //předchozí výraz se dá nahradit úspornějším:
  $soucet += 100;
  echo $soucet;
?>



 function vypis_pole($pole){
    while (list($i,$hodnota) = each($pole)){
      echo "$i - $hodnota<br />";
    }
    echo "<br />";
  }
      
  $mat_pred = array(1=>"CJ", "AJ", "MA", "IVT");
  sort($mat_pred); //setřídíme prvky pole vzestupně a získáme nové indexy od 0
  vypis_pole($mat_pred);
  
  $mat_pred = array(1=>"CJ", "AJ", "MA", "IVT"); //opětovná deklarace pole
  rsort($mat_pred); //setřídíme prvky pole sestupně a získáme nové indexy od 0
  vypis_pole($mat_pred);
  
  $mat_pred = array(1=>"CJ", "AJ", "MA", "IVT"); //opětovná deklarace pole
  asort($mat_pred); //setřídíme prvky pole vzestupně a zachováme původní indexy
  vypis_pole($mat_pred);

  $mat_pred = array(1=>"CJ", "AJ", "MA", "IVT"); //opětovná deklarace pole
  arsort($mat_pred); //setřídíme prvky pole sestupně a zachováme původní indexy
  vypis_pole($mat_pred);    
?>
peta
Profil
Joker: Nebo jde o usporu kod.
$a;
function aaa(&$a)
{
$a = 1;
}
aaa($a);
$a je tam 4x.

$a;
function aaa()
{
global $a;
$a = 1;
}
aaa();
$a je tam 3x.
Obvykle promenne maji delsi nazvy a kdyz jich takovych mas ve funkci 5, treba a musis to porad duplikovat...
tiso
Profil
peta:
function aaa()
{
  return 1;
}
$a = aaa();

$a je tam raz

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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