Привет, добрые люди. Продолжаю разбираться с php и возникла следующая задача: Есть код, ниже приведен его кусочек. PHP: <?php if (!isset($var)) echo strip_tags ($_POST['surname'])."<br>"; if (empty($_POST['surname'])) echo "<font color=gray><i>Вы не заполнили поле фамилия</i></font>"."<br>"; if (!isset($var)) echo strip_tags ($_POST['name'])."<br>"; if (empty($_POST['name'])) echo "<font color=gray><i>Вы не заполнили поле имя</i></font>"."<br>"; if (!isset($var)) echo strip_tags ($_POST['patr'])."<br>"; if (empty($_POST['patr'])) echo "<font color=gray><i>Вы не заполнили поле отчество</i></font>"."<br>"; if (!isset($var)) echo strip_tags ($_POST['sex'])."<br>"; if (empty($_POST['sex'])) echo "<font color=gray><i>Вы не заполнили поле пол</i></font>"."<br>"; ?> И вот везде мне необходимо вместо if(isset)... для получения значения из $_POST использовать тернарный оператор. Я прочитал много статей на этот счет, везде приводятся примеры с цифрами. Я знаю, что выглядит он следующим образом: "$var = condition ? exp1 : exp2;", Но я не понимаю, что мне необходимо вписать в условие после = Буду ну ОЧЕНЬ благодарен если кто-то сможет мне показать , как это сделать на примере хотя бы одной строки из кода. Спасибо.
не получается, не могу допетрить как именно это надо сделать... я же не просто так попросил показать на примере одной из моих строк кода --- Добавлено --- @mkramer "? exp1 : exp2;" эта часть мне понятна, большой вопрос к этому: "= condition"
PHP: echo (!empty($_POST['surname'])) ? strip_tags($_POST['surname'])."<br>" : "<font color=gray><i>Вы не заполнили поле фамилия</i></font><br>"; --- Добавлено --- схема простая: PHP: (условие) ? true : false;
на здоровье почитай про isset и empty их отличия нужно понимать переменная может существовать, но быть пустой.
@TeslaFeo да, понял уже, что тут глубокий пробел начинает образовываться...надо заделывать я то еще совсем нуб сейчас сразу и побегу читать, еще раз спасибо)
@Deonis, будет 0 блокировать там, где не надо. База, конечно, не взорвётся от этого, но заказчик может дать в претензию (проходил). Имел в виду именно опасность этого @TeslaFeo, ($var ?? "") !== ""
@mkramer а можете пожалуйста показать, как это использовать на примере моего кода? Если несложно, конечно)
PHP: echo(($_POST['surname'] ?? "") !== "") ? strip_tags($_POST['surname'])."<br>":"<font color=gray><i>Вы не заполнили поле фамилия</i></font><br>"; Работает в php 7.0+. Чувак, ты заставляешь сомневаться в твоих умственных способностях. Не надо так себя оскорблять --- Добавлено --- https://secure.php.net/manual/ru/la...on.php#language.operators.comparison.coalesce - подробнее про двойной вопрос
@mkramer оскорбляешь тут меня только ты я делал то же самое, что ты написал, но оно не сработало. Теперь знаю, что из-за версии php ... жаль тебя, раз ты считаешь, что дело в умственных способностях (которые у меня в порядке к счастью).
Учиться надо на самом новом PHP, самому новому. 5 ветка уже почти умерла (дла 5.6 только обновления безопасности выходят, до 31 декабря, http://php.net/supported-versions.php)