2014-03-11 4 views
0

Какова цель проверки значения $ _POST массива из двух полей ввода текста следующим образом:PHP равный приоритет операторов

$start = $end = ''; // i need to understand this line 

if (isset($_POST['start'])) $start = $_POST['start']; 
if (isset($_POST['end'])) $end= $_POST['end']; 
+1

его '$ _POST' не $ _post –

+0

Правильно, спасибо – elkebirmed

ответ

1

Это просто устанавливает $start и $end к '' в одном заявлении.

Затем проверьте, есть ли что-то isset(), прежде чем ссылаться на них, чтобы вы не получили неопределенные уведомления об изменениях.

Таким образом, первая строка устанавливает значение по умолчанию в случае сбоя isset().

Это выполняет то же самое (и я предпочитаю):

$start = isset($_POST['start']) ? $_POST['start'] : ''; 
$end = isset($_POST['end']) ? $_POST['end'] : ''; 
+0

Так просто, я просто усложнил это в своей голове, спасибо :) – elkebirmed

1

Потому что вам нужно, чтобы узнать, если переменная была определена. Если он не определен, вы сохраняете неопределенную переменную, и вы получите сообщение об ошибке (уведомление). Вот почему проверка с isset() и сохранение пустой строки. Также $_post должен капитализироваться ($_POST).

1

$start = $end = ''; устанавливает обе переменные в '': пустая строка.

1

Вы можете сказать, что $start равно end, что соответствует ''. Поэтому $start тоже ''.

1
$start = ''; 
$end = ''; 

такой же, как:

$start = $end = ''; // i need to understand this line 

, которые присваивают значение '' до $ начала и $ конец. Вся переменная будет иметь последнее значение цепочки назначения.

Цель: if (isset ($ _ post ['start'])) $ start = $ _post ['start'];

, если мы посмотрим, что это делает:

[pseudo code] 
    IF (I HAVE SOMETHING IN $_post['start']) 
     THEN 
      I CAN ASSIGN THIS VALUE TO $start 

Мы не хотим, чтобы назначить несуществующее значение $ запуститься.

voila!

Смежные вопросы