Jump to content
  • 0

Прокомментировать часть кода


kilogram
 Share

Question

Расшифруйте логику работы что куда берется и получается в этом цикле.

Смущают вот эти названия в параметрах как ими манипуляция происходит ['doGo'] и ['known'] ?

Что откуда куда достается и вставляется куда?



<html><body>
<?php
if(@$_REQUEST['doGo']) {
foreach(@$_REQUEST['known'] as $k=>$v) {
if($v) echo "Вы знаете язык $k!<br>";
else echo "Вы не знаете языка $k. <br>";
}
}
?>
<form action="<?=$_SERVER['SCRIPT_NAME'] ?>" method="post">
Какие языки программирования вы знаете? <br>
<input type="hidden" name="known[PHP]" value="0">
<input type="checkbox" name="known[PHP]" value="0">PHP<br>
<input type="hidden" name="known[PHP]" value="0">
<input type="checkbox" name="known[Perl]" value="0">Perl<br>
<input type="submit" name="doGo" value="Go">
</form>

</body></html>

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

Если приходит не пустое значение "doGo", то есть была нажата кнопка отправки формы, то выполняется условие.

В цикле foreach происходит перебор массива 'known' который пришел из полей, и разбивается на ключ=>значение

Далее при каждой итерации проверяется является ли текущее значение истиной, если да,

то выводится сообщение "Вы знаете язык " и текущее значение ключа, если не выполняется, то соответственно наоборот

Link to comment
Share on other sites

  • 0

В документации написано:

REQUEST - это ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.

REQUEST - я так понимаю это массив глобальный в котором внутри 3 массива вложенные?

В строке

<input type="submit" name="doGo" value="Go">

поле name=doGO. Это значение отправляется в глобальный массив REQUEST, а как же если согласно документации в глобальном ассоциативном массиве REQUEST 3 параметра?

Link to comment
Share on other sites

  • 0

Вы не правильно поняли. Внутри массива $_REQUEST нет еще трех ассоциативных массивов $_GET, $_POST и $_COOKIE. Массив $_REQUEST содержит в себе данные всех трех массивов $_GET, $_POST и $_COOKIE

Edited by NeoXidizer
Link to comment
Share on other sites

  • 0

<!DOCTYPE html>
<html><head><meta charset="windows-1251"/></head><body>
<?php
if(@$_REQUEST['doGo']) {
foreach(@$_REQUEST['known'] as $k=>$v) {
if($v) echo "Вы знаете язык $k!<br>";
else echo "Вы не знаете языка $k. <br>";
}
}
?>
<form action="<?=$_SERVER['SCRIPT_NAME'] ?>" method="post">
Какие языки программирования вы знаете? <br>
<input type="hidden" name="known[PHP]" value="0">
<input type="checkbox" name="known[PHP]">PHP<br>
<input type="hidden" name="known[Perl]" value="0">
<input type="checkbox" name="known[Perl]">Perl<br>
<input type="submit" name="doGo" value="Go">
</form>
<?php print_r($_REQUEST);?>
</body></html>

при передаче формы (при нажатии на кнопку Go) в массив $_REQUEST передаются все передаваемые данные, будь то POST, GET или FILE.

читайте книжку дальше, со временем будете понимать :)

Link to comment
Share on other sites

  • 0

Итерация - это понятие, применимое к циклам. Где здесь циклы? Данные скрипта сбрасываются между вызовами. Каждая загрузка страницы заново наполняет все переменные.

Link to comment
Share on other sites

  • 0

по факту отправления формы

тобишь имеется html форма с инпутами, у каждого свое имя, как только нажимается кнопка, которая отправляет форму, браузер передает (в данном случае) POST запрос на сервер, который он принимает и обрабатывается через PHP

или вам еще глубже надо знать?

Link to comment
Share on other sites

  • 0

То есть написав просто какое-то значение в поле name, например name="vasya" в глобальный массив REQUEST доступен во всех файлах, значение vasya полетит в РИКВЭСТ и запишется в него такое: $REQUEST['vasya'], а написав так name="vasya['Pupkin']" я вроде создаю этим двумерный массив в масиве РИКВЭСТ? Получается в РИКВЕСТЕ такое после name="vasya['Pupkin']" —-> $REQUEST['vasya']['Pypkin']?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy