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
BobbyKejev avatar BobbyKejev 12 Точки

Никой не е казал и не спори, че не работи. Просто така е прието да се пише и за това е сложено в раздел Code Quality. ;)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.