Link in progress
Обо мне
Оператор отрицания. Уроки по PHP

Оператор отрицания Приветствую всех читателей блога. Вспоминаем, что было в прошлом уроке по PHP. Этот урок будет последним в этом 2015 году и он будет о том, где можно применять чудесный оператор как «Оператор отрицания». И хочу огорчить, что о функцию isset() и ее применения я напишу в недалёком будущем, если все лепить в этот урок – он станет долгим и многие просто не осилят дочитать его до конца.

«Оператор отрицания» (имеет вид « ! » ) — это оператор, который превращает TRUE в FALSE и наоборот. У некоторой литературе встречается имя «знак обратной функции». Возьмем наш обработчик отправки писем sender_mail.php. В нём есть такое выражение:

1
if (empty($subject) || empty($body_text)) {…

Мы спрашиваем, у переменной $subject и $body_text, пустые ли они? Если ответ – да, то есть когда функция возвращает TRUE, тогда идет исполнение кода в первых скобках {…}. Если мы поставим оператор отрицания, тогда мы будем спрашивать так:

1
if (!empty($subject) || !empty($body_text)) {…

Если мы используем оператор обратной функции, тогда нам нужно менять логический оператор OR ( || ) на AND ( && ). В недалёком будущем я напишу статью об основных логических операторах PHP. В этом случает функция спрашивает у переменной: «Есть ли у тебя данные?» Если функция возвращает – да (TRUE), тогда будет выполнен код в первых скобках.

Вы скажете, какая же разница, и в первом примере и во втором при возврате TRUE будет выполняться код в первых скобках? Давайте разберемся. Внимательно прочтите, какой вопрос мы просим задать функцией к переменной? В первом – мы спрашивает на наличие ПУСТОТЫ, а во втором – на наличие ДАННЫХ в переменной. Что для вас важнее – узнать пустые ли переменные пришли с формы или с данными? Правильно! Нам нужны данные, а не пустота. Конечно, бывают случаи, что вполне хватает проверки на пустоту, но это уже практика и подходом к решению задач очень много. Чем больше у вас опыта – тем проще и качественно вы решаете поставленных переда вами задачи.

Давайте используем выше обузданные знания и применим их на практике. На примере файла sender_mail.php я покажу, как можно использовать оператор отрицания и это усовершенствует нашу мини систему управление сайтом:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
//Записываем данные пришедшие из формы в переменные
$subject = $_POST['subject'];
$body_text = $_POST['body_text'];

// Пусты ли обе переменные?
if (empty($subject) && empty($body_text)) {
        echo 'Вы не указали тему и текст сообщение!<br />';
        };
// Пуста ли $subject и с данными $body_text?
if (empty($subject) && (!empty($body_text))) {
        echo 'Вы не указали тему сообщение!<br />';
        };
// С данными ли $subject и пуста ли $body_text?
if ((!empty($subject)) && empty($body_text)) {
        echo 'Вы не указали текст сообщение!';
        };

if ((!empty($subject)) && (!empty($body_text))) {
    //Подключаемся к БД
    $connect = mysqli_connect('hostname', 'login', 'pass', 'BDname', ) or die ('Нет подключения к базе данных');

    //Записываем запрос к БД в переменную
    $query = "SELECT * FROM store_list";

    // Выполняем отправку запроса в БД и выводим результат функции
    $result = mysqli_query($connect, $query) or die ('Что то пошло не так...');

    while ($row = mysqli_fetch_array($result)) {
    mail ($row[email], $subject, $body_text);
    echo 'Письмо успешно отправлено подписчику: ' . $row[first_name] . ' ' . $row[last_name] . '  на адрес: ' . $row[email] . '<br />';
    };
    // Закрываем соединение с БД
    mysqli_close($connect);
};
?>

Пересмотрите это код. Изменений там не много, но логика исполнения уже совсем другая и плюс к этому, мы указываем вывод ошибки, какое конкретно поле осталось не заполненным. И все это сделано на одной функции empty(). Оператор отрицания можно применять и ко многим другим функция, если это нужно.

Второе домашнее задания для вас. Внесите такие же изменения в другие файлы уроков add_mailer.php и dell_mailer.php используя оператор отрицания.

На этом урок окончен, с вами был ProIN, до встречи в новом 2016 году!

Скачать файлы урока:
sender_mail.php 1 Kb

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Max quality, min price, min time expenditure
Send me a message to: work@glogla.net
Portfolio