Професионална програма
Loading...
+ Нов въпрос
Premitium avatar Premitium 2 Точки

Как се генерира променливата $output от формата в задача номер 1.1. Code Quality?

Някой може ли подскаже каква е тази магия $output в този код:

<?php if (isset($output)) : ?>
  <div>
    Result:
    <input type="text" disabled="disabled" readonly="readonly" value="<?= $output; ?>"/>
  </div>
<?php endif; ?>

Никъде в calculator.php не се инициализира и не се достъпва от $_GET променливата.

Мерси!

Тагове:
0
PHP Web
BobbyKejev avatar BobbyKejev 12 Точки

Здравейте,

парчето код, което сте копирал е от файла calculator_frontend.php в този файл се намира HTML кода + $output променливата. На практика няма нищо магическо, имаме достъп до $output променлива благодарение на include_once 'calculator_fronted.php'.

Във файла calculator.php се намира PHP логиката и в него е инклуднат calculator_frontend.php файла. ;)

 

Надявам се да Ви е станало ясно.

 

Поздрави!

0
Premitium avatar Premitium 2 Точки

Това е кода на calculator_frontend.php

<form method="get">
  <div>
    <select name="operation">
        <option value="sum">SUM</option>
        <option value="subtract">SUBTRACT</option>
    </select>
</div>
<div>
  <input type="text" name="number_one"/>
  <input type="text" name="number_two"/ >
</div>
<?php if (isset($output)) : ?>
  <div>
    Result:
    <input type="text" disabled="disabled" readonly="readonly" value="<?= $output; ?>"/>
  </div>
<?php endif; ?>
<div>
  <input type="submit" name="calculate" value="Calculate!"/>
</div>
</form>

А това е на това на calculator.php

<?php
  if (isset($_GET['calculate'])) {
    $operation = $_GET['operation'];
    $numberOne = $_GET['number_one'];
    $numberTwo = $_GET['number_two'];
    if ($operation == "sum") {
      echo "Result = " . ($numberOne + $numberTwo);
    }elseif ($operation == "subtract") {
      echo "Result = " . ($numberOne - $numberTwo);
    }else {
      echo "Something went terribly wrong";
    }
  }
  include 'calculator_front.php';
 ?>

Къде се инициализара $output и къде се присвоява стойността от логигата в calculator.php към $output?

Защо изобщо този if е TRUE: 

<?php if (isset($output)) : ?>
0
22/10/2016 22:41:51
BobbyKejev avatar BobbyKejev 12 Точки

Това е кода на calculator.php

<?php
if (isset($_GET['calculate'])) {
    $operation = $_GET['operation'];
    $numberOne = $_GET['number_one'];
    $numberTwo = $_GET['number_two'];
    $output = "";
    if ($operation == 'sum') {
        $output = $numberOne + $numberTwo;
    } else if ($operation == 'subtract') {
        $output = $numberOne - $numberTwo;;
    } else {
        $output = 'Invalid operation supplied.';
    }
}

include_once 'calculator_fronted.php';

моля, погледнете 2 страници по-надолу (мисля, че страница 17 беше).

 

Поздрави!

0
Premitium avatar Premitium 2 Точки

Да това вече го разбирам :) Но, дори и само с echo в if-овете работи както трябва.

0